1/*
2 * L4_MABX.c
3 *
4 * Code generation for model "L4_MABX".
5 *
6 * Model version : 1.868
7 * Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
8 * C source code generated on : Fri Dec 6 11:54:14 2019
9 *
10 * Target selection: rti1401.tlc
11 * Note: GRT includes extra infrastructure and instrumentation for prototyping
12 * Embedded hardware selection: Custom Processor->Custom
13 * Code generation objectives: Unspecified
14 * Validation result: Not run
15 */
16
17#include "L4_MABX_trc_ptr.h"
18#include "L4_MABX.h"
19#include "L4_MABX_private.h"
20
21/* Named constants for Chart: '<S79>/Chart' */
22#define L4_MABX_IN_Init ((uint8_T)1U)
23#define L4_MABX_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
24#define L4_MABX_IN_OperatorDisabled ((uint8_T)2U)
25#define L4_MABX_IN_OperatorEnabled ((uint8_T)3U)
26
27/* Named constants for Chart: '<S205>/Relay_control_state_machine' */
28#define L4_MABX_IN_IGN_RELAY_LATCH ((uint8_T)1U)
29#define L4_MABX_IN_IGN_RELAY_UNLATCH ((uint8_T)1U)
30#define L4_MABX_IN_INITIAL ((uint8_T)1U)
31#define L4_MABX_IN_INV_RELAY_LATCH ((uint8_T)2U)
32#define L4_MABX_IN_INV_RELAY_UNLATCH ((uint8_T)2U)
33#define L4_MABX_IN_MABX_RELAY_LATCH ((uint8_T)3U)
34#define L4_MABX_IN_MABX_RELAY_UNLATCH ((uint8_T)3U)
35#define L4_MABX_IN_POWER_DOWN_ROUTINE ((uint8_T)2U)
36#define L4_MABX_IN_POWER_UP_ROUTINE ((uint8_T)3U)
37#define L4_MABX_IN_SENSOR_RELAY_LATCH ((uint8_T)4U)
38#define L4_MABX_IN_SENSOR_RELAY_UNLATCH ((uint8_T)4U)
39#define L4_MABX_IN_WAIT ((uint8_T)5U)
40
41/* Named constants for Chart: '<S277>/Chart' */
42#define L4_MABX_IN_OneLane ((uint8_T)1U)
43#define L4_MABX_IN_OneLane1 ((uint8_T)2U)
44#define L4_MABX_IN_TwoLanes ((uint8_T)3U)
45#define L4_MABX_IN_TwoLanes1 ((uint8_T)4U)
46#define L4_MABX_IN_ZeroLanes ((uint8_T)5U)
47#define L4_MABX_IN_ZeroLanes1 ((uint8_T)6U)
48#define L4_MABX_IN_init_h ((uint8_T)7U)
49
50/* Named constants for Chart: '<S738>/Health State Machine PWM Sensor 1' */
51#define L4_MABX_IN_ERROR ((uint8_T)1U)
52#define L4_MABX_IN_FAILURE_DETECTED ((uint8_T)1U)
53#define L4_MABX_IN_NO_FAILURE ((uint8_T)2U)
54#define L4_MABX_IN_PENDING ((uint8_T)2U)
55
56/* Named constants for Chart: '<S820>/Chart' */
57#define L4_MABX_IN_DiagPassed ((uint8_T)1U)
58#define L4_MABX_IN_SwitchOff ((uint8_T)2U)
59#define L4_MABX_IN_SwitchOn ((uint8_T)3U)
60#define L4_MABX_IN_init_j ((uint8_T)4U)
61
62/* Named constants for Chart: '<S834>/Chart' */
63#define L4_MABX_IN_CheckPacketCount ((uint8_T)1U)
64#define L4_MABX_IN_Init_h ((uint8_T)2U)
65#define L4_MABX_IN_InterframeDelay ((uint8_T)3U)
66#define L4_MABX_IN_InterframeDelay1 ((uint8_T)4U)
67#define L4_MABX_IN_SendTPCM ((uint8_T)5U)
68#define L4_MABX_IN_SendTPDT ((uint8_T)6U)
69#define L4_MABX_IN_StartMsg ((uint8_T)7U)
70#define L4_MABX_IN_WaitForNextPeriod ((uint8_T)8U)
71
72/* Exported block signals */
73real_T GLB_Absolute_Timestamp; /* '<S412>/Rate Transition' */
74real_T ReAX_ActualHandwheelPos; /* '<S438>/Switch' */
75real_T EthernetLinkStatus; /* '<S393>/dsa_tcpip_setup' */
76real_T CurrentAzimuth_rad; /* '<S391>/Switch' */
77real_T TargetAzimuth_rad; /* '<S391>/Switch1' */
78real_T TargetVelocity_kph; /* '<S391>/Switch3' */
79real_T Curvature; /* '<S391>/Switch4' */
80real_T CrosstrackError; /* '<S391>/Switch5' */
81real_T CurrentVelocity_kph; /* '<S391>/Switch2' */
82real_T GPS_X; /* '<S391>/Switch6' */
83real_T GPS_Y; /* '<S391>/Switch7' */
84real_T GPS_Time; /* '<S391>/Switch8' */
85real_T ReAX_EchoedSteerWheelPos; /* '<S438>/Switch' */
86real_T SteerWheelAngle; /* '<S640>/S-Function1' */
87real_T YawRate; /* '<S640>/S-Function1' */
88real_T SPN1810_LongitudinalAcceleration;/* '<S640>/S-Function1' */
89real_T WheelBasedVehicleSpeed; /* '<S501>/S-Function1' */
90real_T BrakeSwitch; /* '<S501>/S-Function1' */
91real_T Lateral_Control_Rate_Limit; /* '<S304>/Constant' */
92real_T Lateral_Control_Output; /* '<S275>/Sum1' */
93real_T Lateral_Control_Rate_Limiter_Output;/* '<S304>/If_Then_Else' */
94real_T SteerCommandDeg; /* '<S80>/sign flip' */
95real_T DesiredSteeringAngle; /* '<S80>/sign2' */
96real_T Lateral_Control_Heading_Error; /* '<S275>/Error Calc' */
97uint32_T DIAG_CAN1_Count_Stuff_Errors; /* '<S28>/S-Function1' */
98uint32_T DIAG_CAN1_Count_Format_Errors;/* '<S28>/S-Function1' */
99uint32_T DIAG_CAN1_Count_Ack_Errors; /* '<S28>/S-Function1' */
100uint32_T DIAG_CAN1_Count_Bit0_Errors; /* '<S28>/S-Function1' */
101uint32_T DIAG_CAN1_Count_Bit1_Errors; /* '<S28>/S-Function1' */
102uint32_T DIAG_CAN1_Count_CRC_Errors; /* '<S28>/S-Function1' */
103uint32_T DIAG_CAN1_Count_RX_Lost; /* '<S28>/S-Function1' */
104uint32_T DIAG_CAN1_Count_RX_OK; /* '<S28>/S-Function1' */
105uint32_T DIAG_CAN1_Count_TX_OK; /* '<S28>/S-Function1' */
106uint32_T DIAG_CAN5_Count_Stuff_Errors; /* '<S20>/S-Function1' */
107uint32_T DIAG_CAN5_Count_Format_Errors;/* '<S20>/S-Function1' */
108uint32_T DIAG_CAN5_Count_Ack_Errors; /* '<S20>/S-Function1' */
109uint32_T DIAG_CAN5_Count_Bit0_Errors; /* '<S20>/S-Function1' */
110uint32_T DIAG_CAN5_Count_Bit1_Errors; /* '<S20>/S-Function1' */
111uint32_T DIAG_CAN5_Count_CRC_Errors; /* '<S20>/S-Function1' */
112uint32_T DIAG_CAN5_Count_RX_Lost; /* '<S20>/S-Function1' */
113uint32_T DIAG_CAN5_Count_RX_OK; /* '<S20>/S-Function1' */
114uint32_T DIAG_CAN5_Count_TX_OK; /* '<S20>/S-Function1' */
115uint32_T DIAG_CAN6_Count_Stuff_Errors; /* '<S21>/S-Function1' */
116uint32_T DIAG_CAN6_Count_Format_Errors;/* '<S21>/S-Function1' */
117uint32_T DIAG_CAN6_Count_Ack_Errors; /* '<S21>/S-Function1' */
118uint32_T DIAG_CAN6_Count_Bit0_Errors; /* '<S21>/S-Function1' */
119uint32_T DIAG_CAN6_Count_Bit1_Errors; /* '<S21>/S-Function1' */
120uint32_T DIAG_CAN6_Count_CRC_Errors; /* '<S21>/S-Function1' */
121uint32_T DIAG_CAN6_Count_RX_Lost; /* '<S21>/S-Function1' */
122uint32_T DIAG_CAN6_Count_RX_OK; /* '<S21>/S-Function1' */
123uint32_T DIAG_CAN6_Count_TX_OK; /* '<S21>/S-Function1' */
124uint32_T DIAG_CAN3_Count_Stuff_Errors; /* '<S18>/S-Function1' */
125uint32_T DIAG_CAN3_Count_Format_Errors;/* '<S18>/S-Function1' */
126uint32_T DIAG_CAN3_Count_Ack_Errors; /* '<S18>/S-Function1' */
127uint32_T DIAG_CAN3_Count_Bit0_Errors; /* '<S18>/S-Function1' */
128uint32_T DIAG_CAN3_Count_Bit1_Errors; /* '<S18>/S-Function1' */
129uint32_T DIAG_CAN3_Count_CRC_Errors; /* '<S18>/S-Function1' */
130uint32_T DIAG_CAN3_Count_RX_Lost; /* '<S18>/S-Function1' */
131uint32_T DIAG_CAN3_Count_RX_OK; /* '<S18>/S-Function1' */
132uint32_T DIAG_CAN3_Count_TX_OK; /* '<S18>/S-Function1' */
133uint32_T DIAG_CAN4_Count_Stuff_Errors; /* '<S19>/S-Function1' */
134uint32_T DIAG_CAN4_Count_Format_Errors;/* '<S19>/S-Function1' */
135uint32_T DIAG_CAN4_Count_Ack_Errors; /* '<S19>/S-Function1' */
136uint32_T DIAG_CAN4_Count_Bit0_Errors; /* '<S19>/S-Function1' */
137uint32_T DIAG_CAN4_Count_Bit1_Errors; /* '<S19>/S-Function1' */
138uint32_T DIAG_CAN4_Count_CRC_Errors; /* '<S19>/S-Function1' */
139uint32_T DIAG_CAN4_Count_RX_Lost; /* '<S19>/S-Function1' */
140uint32_T DIAG_CAN4_Count_RX_OK; /* '<S19>/S-Function1' */
141uint32_T DIAG_CAN4_Count_TX_OK; /* '<S19>/S-Function1' */
142uint32_T DIAG_CAN2_Count_Stuff_Errors; /* '<S17>/S-Function1' */
143uint32_T DIAG_CAN2_Count_Format_Errors;/* '<S17>/S-Function1' */
144uint32_T DIAG_CAN2_Count_Ack_Errors; /* '<S17>/S-Function1' */
145uint32_T DIAG_CAN2_Count_Bit0_Errors; /* '<S17>/S-Function1' */
146uint32_T DIAG_CAN2_Count_Bit1_Errors; /* '<S17>/S-Function1' */
147uint32_T DIAG_CAN2_Count_CRC_Errors; /* '<S17>/S-Function1' */
148uint32_T DIAG_CAN2_Count_RX_Lost; /* '<S17>/S-Function1' */
149uint32_T DIAG_CAN2_Count_RX_OK; /* '<S17>/S-Function1' */
150uint32_T DIAG_CAN2_Count_TX_OK; /* '<S17>/S-Function1' */
151real32_T REAX_Handwheel_Torque; /* '<S414>/Data Type Conversion3' */
152real32_T REAX_Handwheel_Velocity; /* '<S414>/Data Type Conversion4' */
153real32_T REAX_Pull_Compensation; /* '<S414>/Data Type Conversion5' */
154ENUM_CAN_STATUS_DIAG_T DIAG_CAN1_Status;/* '<S1>/Data Type Conversion' */
155ENUM_CAN_STATUS_DIAG_T DIAG_CAN5_Status;/* '<S1>/Data Type Conversion5' */
156ENUM_CAN_STATUS_DIAG_T DIAG_CAN6_Status;/* '<S1>/Data Type Conversion4' */
157ENUM_CAN_STATUS_DIAG_T DIAG_CAN3_Status;/* '<S1>/Data Type Conversion3' */
158ENUM_CAN_STATUS_DIAG_T DIAG_CAN4_Status;/* '<S1>/Data Type Conversion2' */
159ENUM_CAN_STATUS_DIAG_T DIAG_CAN2_Status;/* '<S1>/Data Type Conversion1' */
160uint8_T SupervisorMode; /* '<S391>/Switch9' */
161uint8_T REAX_Current_Mode; /* '<S414>/Data Type Conversion' */
162uint8_T REAX_Req_Mode; /* '<S414>/Data Type Conversion1' */
163uint8_T REAX_Status; /* '<S414>/Data Type Conversion2' */
164uint8_T GLB_SWVERSION_CPV_[100]; /* '<S1066>/Constant' */
165uint8_T MABX_Mode; /* '<S76>/Switch' */
166boolean_T EStop; /* '<S411>/Logical Operator1' */
167boolean_T EnableSw; /* '<S736>/Switch' */
168boolean_T Heartbeat_Ok; /* '<S396>/Switch1' */
169boolean_T RTMapsOk; /* '<S391>/AND' */
170boolean_T EngagePB; /* '<S411>/Logical Operator' */
171boolean_T AutonomousEnabled; /* '<S76>/AND' */
172boolean_T AutonomousOutputEnabled; /* '<S76>/Autonomous Mode Switch' */
173boolean_T RateLimiterActive; /* '<S313>/Compare' */
174real_T Pedal_pwm_position; /* '<S740>/Switch' */
175
176/* Exported block parameters */
177real_T APTC_PEDAL_LOW_IDLE_SW_THR_APV = 3.0;/* Variable: APTC_PEDAL_LOW_IDLE_SW_THR_APV
178 * Referenced by: '<S75>/Constant'
179 */
180real_T APTC_TRQ_PED_INV_MAP_PED_POS_MPV[1328] = { 0.0, 0.3125, 0.859375, 1.15625,
181 1.59375, 1.8125, 1.921875, 2.375, 3.8125, 4.3125, 4.84375, 4.96875, 5.71875,
182 6.28125, 6.5625, 6.890625, 7.0, 7.8606557377049, 9.1229508196721,
183 10.327868852459, 11.532786885246, 14.0, 15.25748502994, 15.425149700599,
184 15.718562874251, 16.808383233533, 17.730538922156, 18.023952095808,
185 18.275449101796, 18.904191616766, 19.449101796407, 19.658682634731,
186 19.74251497006, 19.826347305389, 20.287425149701, 21.0, 21.516393442623,
187 22.290983606557, 23.409836065574, 24.758196721311, 24.959016393443,
188 25.217213114754, 26.22131147541, 26.995901639344, 27.311475409836,
189 27.454918032787, 27.512295081967, 27.684426229508, 28.0, 32.101910828025,
190 32.235668789809, 34.687898089172, 35.0, 36.734104046243, 38.815028901734,
191 42.28323699422, 42.514450867052, 44.364161849711, 51.878612716763, 55.0,
192 72.260273972603, 79.041095890411, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
193 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
194 100.0, 100.0, 100.0, 100.0, 0.0, 0.33333333333333, 0.91666666666667,
195 1.2333333333333, 1.7, 1.9333333333333, 2.05, 2.5333333333333, 4.0666666666667,
196 4.6, 5.1666666666667, 5.3, 6.1, 6.7, 7.0, 8.3738317757009, 8.8317757009346,
197 9.8130841121495, 11.252336448598, 12.626168224299, 14.0, 15.559585492228,
198 16.647668393782, 16.79274611399, 17.046632124352, 17.989637305699,
199 18.787564766839, 19.041450777202, 19.259067357513, 19.80310880829,
200 20.274611398964, 20.455958549223, 20.528497409326, 20.60103626943, 21.0,
201 21.476, 21.98, 22.736, 23.828, 25.144, 25.34, 25.592, 26.572, 27.328, 27.636,
202 27.776, 27.832, 28.0, 28.478260869565, 32.478260869565, 32.608695652174, 35.0,
203 35.777777777778, 37.444444444444, 39.444444444444, 42.777777777778, 43.0,
204 44.777777777778, 52.0, 55.0, 61.237623762376, 63.688118811881, 71.262376237624,
205 75.160891089109, 78.613861386139, 96.769801980198, 97.660891089109,
206 98.329207920792, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
207 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 0.57377049180328,
208 1.577868852459, 2.1229508196721, 2.9262295081967, 3.327868852459,
209 3.5286885245902, 4.3606557377049, 7.0, 7.8549618320611, 8.763358778626,
210 8.9770992366412, 10.259541984733, 11.221374045802, 11.702290076336,
211 12.263358778626, 12.450381679389, 12.851145038168, 13.43893129771, 14.0,
212 14.757731958763, 16.309278350515, 17.39175257732, 17.536082474227,
213 17.788659793814, 18.726804123711, 19.520618556701, 19.773195876289,
214 19.989690721649, 20.530927835052, 21.0, 21.132575757576, 21.185606060606,
215 21.238636363636, 21.530303030303, 21.981060606061, 22.458333333333,
216 23.174242424242, 24.208333333333, 25.454545454545, 25.640151515152,
217 25.878787878788, 26.806818181818, 27.522727272727, 27.814393939394,
218 27.94696969697, 28.0, 28.202898550725, 28.574879227053, 31.685990338164,
219 31.787439613527, 33.647342995169, 33.884057971014, 34.391304347826, 35.0,
220 36.704545454545, 36.818181818182, 37.727272727273, 41.420454545455,
221 42.954545454545, 46.136363636364, 47.386363636364, 51.25, 53.238636363636,
222 55.0, 64.249684741488, 64.703656998739, 65.044136191677, 65.895334174023,
223 75.769230769231, 79.457755359395, 82.919293820933, 84.451450189155,
224 93.417402269861, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
225 0.0, 0.92105263157895, 2.5328947368421, 3.4078947368421, 4.6973684210526,
226 5.3421052631579, 5.6644736842105, 7.0, 8.9339339339339, 9.6066066066066,
227 10.321321321321, 10.489489489489, 11.498498498498, 12.255255255255,
228 12.633633633634, 13.075075075075, 13.222222222222, 13.537537537538, 14.0,
229 14.65625, 15.3125, 16.65625, 17.59375, 17.71875, 17.9375, 18.75, 19.4375,
230 19.65625, 19.84375, 20.3125, 20.71875, 20.875, 20.9375, 21.0, 21.310483870968,
231 21.790322580645, 22.298387096774, 23.060483870968, 24.161290322581,
232 25.487903225806, 25.685483870968, 25.939516129032, 26.927419354839,
233 27.689516129032, 28.0, 28.143442622951, 28.200819672131, 28.372950819672,
234 28.688524590164, 31.327868852459, 31.41393442623, 32.991803278689,
235 33.19262295082, 33.622950819672, 34.139344262295, 35.0, 35.082474226804,
236 35.742268041237, 38.422680412371, 39.536082474227, 41.845360824742,
237 42.752577319588, 45.556701030928, 47.0, 48.278350515464, 55.0, 55.39603960396,
238 55.693069306931, 56.435643564356, 65.049504950495, 68.267326732673,
239 71.287128712871, 72.623762376238, 80.445544554455, 86.188118811881,
240 97.326732673267, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
241 1.2068965517241, 3.3189655172414, 4.4655172413793, 6.1551724137931, 7.0,
242 7.1412103746398, 7.7262247838617, 9.5821325648415, 10.227665706052,
243 10.913544668588, 11.07492795389, 12.043227665706, 12.769452449568,
244 13.132564841499, 13.556195965418, 13.697406340058, 14.0, 14.599221789883,
245 15.171206225681, 15.743190661479, 16.91439688716, 17.731517509728,
246 17.84046692607, 18.031128404669, 18.739299610895, 19.338521400778,
247 19.529182879377, 19.692607003891, 20.101167315175, 20.455252918288,
248 20.591439688716, 20.645914396887, 20.700389105058, 21.0, 21.526548672566,
249 22.08407079646, 22.920353982301, 24.128318584071, 25.58407079646,
250 25.800884955752, 26.079646017699, 27.163716814159, 28.0, 28.282051282051,
251 28.410256410256, 28.461538461538, 28.615384615385, 28.897435897436,
252 31.25641025641, 31.333333333333, 32.74358974359, 32.923076923077,
253 33.307692307692, 33.769230769231, 34.538461538462, 34.589743589744, 35.0,
254 36.768707482993, 37.503401360544, 39.027210884354, 39.625850340136,
255 41.47619047619, 42.428571428571, 43.272108843537, 47.707482993197,
256 47.925170068027, 48.08843537415, 48.496598639456, 53.231292517007, 55.0,
257 57.99672489083, 59.323144104803, 67.085152838428, 72.78384279476,
258 83.837336244541, 86.490174672489, 91.550218340611, 99.312227074236, 100.0,
259 100.0, 100.0, 100.0, 0.0, 1.8918918918919, 5.2027027027027, 7.0,
260 7.5340599455041, 7.8010899182561, 7.9346049046322, 8.4877384196185,
261 10.242506811989, 10.852861035422, 11.50136239782, 11.653950953678,
262 12.569482288828, 13.256130790191, 13.599455040872, 14.0, 14.185606060606,
263 14.583333333333, 15.166666666667, 15.723484848485, 16.280303030303,
264 17.420454545455, 18.215909090909, 18.32196969697, 18.507575757576,
265 19.19696969697, 19.780303030303, 19.965909090909, 20.125, 20.522727272727,
266 20.867424242424, 21.0, 21.065420560748, 21.130841121495, 21.490654205607,
267 22.046728971963, 22.635514018692, 23.518691588785, 24.794392523364,
268 26.331775700935, 26.560747663551, 26.855140186916, 28.0, 28.665492957746,
269 28.93661971831, 29.05985915493, 29.109154929577, 29.257042253521,
270 29.528169014085, 31.795774647887, 31.869718309859, 33.225352112676,
271 33.397887323944, 33.767605633803, 34.211267605634, 34.950704225352, 35.0,
272 35.381406436234, 36.930870083433, 37.574493444577, 38.909415971395,
273 39.433849821216, 41.054827175209, 41.88915375447, 42.628128724672,
274 46.513706793802, 46.704410011919, 46.847437425507, 47.205005959476,
275 51.352800953516, 52.902264600715, 54.356376638856, 55.0, 62.917594654788,
276 68.730512249443, 80.005567928731, 82.711581291759, 87.873051224944,
277 95.790645879733, 96.492204899777, 100.0, 100.0, 100.0, 0.0, 7.0,
278 7.8448275862069, 8.3034482758621, 8.9793103448276, 9.3172413793103,
279 9.4862068965517, 10.186206896552, 12.406896551724, 13.179310344828, 14.0,
280 14.157303370787, 15.101123595506, 15.808988764045, 16.162921348315,
281 16.575842696629, 16.713483146067, 17.008426966292, 17.441011235955,
282 17.85393258427, 18.266853932584, 19.112359550562, 19.702247191011,
283 19.780898876404, 19.918539325843, 20.429775280899, 20.862359550562, 21.0,
284 21.192660550459, 21.674311926606, 22.091743119266, 22.252293577982,
285 22.316513761468, 22.380733944954, 22.733944954128, 23.279816513761,
286 23.857798165138, 24.724770642202, 25.977064220183, 27.48623853211,
287 27.711009174312, 28.0, 28.910780669145, 29.613382899628, 29.899628252788,
288 30.029739776952, 30.081784386617, 30.237918215613, 30.524163568773,
289 32.918215613383, 32.996282527881, 34.42750929368, 34.609665427509, 35.0,
290 35.417633410673, 36.113689095128, 36.160092807425, 36.5313225058,
291 38.039443155452, 38.665893271462, 39.965197215777, 40.475638051044,
292 42.053364269142, 42.865429234339, 43.584686774942, 47.366589327146,
293 47.552204176334, 47.691415313225, 48.039443155452, 52.07656612529,
294 53.584686774942, 55.0, 56.296691568837, 63.884738527215, 69.455709711846,
295 80.261472785486, 82.854855923159, 87.801494130203, 95.389541088581,
296 96.061899679829, 99.423692636073, 100.0, 100.0, 0.0, 7.0, 9.378640776699,
297 10.669902912621, 12.572815533981, 13.52427184466, 14.0, 14.394941634241,
298 15.647859922179, 16.083657587549, 16.546692607004, 16.655642023346,
299 17.309338521401, 17.799610894942, 18.044747081712, 18.330739299611,
300 18.426070038911, 18.630350194553, 18.929961089494, 19.215953307393,
301 19.501945525292, 20.087548638132, 20.496108949416, 20.550583657588,
302 20.645914396887, 21.0, 21.836956521739, 22.103260869565, 22.33152173913,
303 22.902173913043, 23.396739130435, 23.586956521739, 23.663043478261,
304 23.739130434783, 24.157608695652, 24.804347826087, 25.489130434783,
305 26.516304347826, 28.0, 29.305555555556, 29.5, 29.75, 30.722222222222,
306 31.472222222222, 31.777777777778, 31.916666666667, 31.972222222222,
307 32.138888888889, 32.444444444444, 35.0, 35.073529411765, 36.421568627451,
308 36.593137254902, 36.960784313725, 37.401960784314, 38.137254901961,
309 38.186274509804, 38.578431372549, 40.171568627451, 40.833333333333,
310 42.205882352941, 42.745098039216, 44.411764705882, 45.269607843137,
311 46.029411764706, 50.024509803922, 50.220588235294, 50.367647058824,
312 50.735294117647, 55.0, 57.720930232558, 60.274418604651, 61.404651162791,
313 68.018604651163, 72.874418604651, 82.293023255814, 84.553488372093,
314 88.86511627907, 95.479069767442, 96.06511627907, 98.995348837209,
315 99.497674418605, 100.0, 0.0, 14.0, 14.419520547945, 14.647260273973,
316 14.982876712329, 15.150684931507, 15.234589041096, 15.582191780822,
317 16.684931506849, 17.068493150685, 17.47602739726, 17.571917808219,
318 18.147260273973, 18.578767123288, 18.794520547945, 19.046232876712,
319 19.130136986301, 19.309931506849, 19.573630136986, 19.825342465753,
320 20.077054794521, 20.592465753425, 20.952054794521, 21.0, 21.324503311258,
321 22.529801324503, 23.549668874172, 23.87417218543, 24.152317880795,
322 24.847682119205, 25.450331125828, 25.682119205298, 25.774834437086,
323 25.867549668874, 26.377483443709, 27.165562913907, 28.0, 28.913043478261,
324 30.231884057971, 31.821256038647, 32.057971014493, 32.36231884058,
325 33.545893719807, 34.458937198068, 34.830917874396, 35.0, 35.054200542005,
326 35.216802168022, 35.514905149051, 38.008130081301, 38.089430894309,
327 39.579945799458, 39.769647696477, 40.176151761518, 40.663956639566,
328 41.476964769648, 41.531165311653, 41.964769647696, 43.726287262873,
329 44.457994579946, 45.975609756098, 46.571815718157, 48.414634146341,
330 49.363143631436, 50.20325203252, 54.620596205962, 54.837398373984, 55.0,
331 55.583910034602, 62.357266435986, 64.887543252595, 67.262110726644,
332 68.313148788927, 74.463667820069, 78.979238754325, 87.737889273356,
333 89.839965397924, 93.849480968858, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
334 14.708092485549, 15.092485549133, 15.658959537572, 15.942196531792,
335 16.083815028902, 16.670520231214, 18.531791907514, 19.179190751445,
336 19.867052023121, 20.028901734104, 21.0, 21.739002932551, 22.108504398827,
337 22.539589442815, 22.683284457478, 22.991202346041, 23.442815249267,
338 23.873900293255, 24.304985337243, 25.187683284457, 25.803519061584,
339 25.885630498534, 26.029325513196, 26.563049853372, 27.014662756598,
340 27.158357771261, 27.281524926686, 27.589442815249, 27.856304985337,
341 27.958944281525, 28.0, 28.083333333333, 28.541666666667, 29.25, 30.0, 31.125,
342 32.75, 34.708333333333, 35.0, 35.291734197731, 36.426256077796,
343 37.301458670989, 37.658022690438, 37.820097244733, 37.884927066451,
344 38.079416531605, 38.435980551053, 41.418152350081, 41.515397082658,
345 43.298217179903, 43.525121555916, 44.011345218801, 44.594813614263,
346 45.567260940032, 45.63209076175, 46.150729335494, 48.257698541329,
347 49.132901134522, 50.948136142626, 51.661264181523, 53.865478119935, 55.0,
348 56.15671641791, 62.238805970149, 62.537313432836, 62.761194029851,
349 63.320895522388, 69.813432835821, 72.238805970149, 74.514925373134,
350 75.522388059701, 81.417910447761, 85.746268656716, 94.141791044776,
351 96.15671641791, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
352 16.987804878049, 18.609756097561, 21.0, 21.175942549372, 21.263913824057,
353 21.628366247756, 22.784560143627, 23.18671454219, 23.614003590664,
354 23.714542190305, 24.317773788151, 24.770197486535, 24.996409335727,
355 25.260323159785, 25.34829443447, 25.536804308797, 25.81328545781,
356 26.077199281867, 26.341113105925, 26.881508078995, 27.258527827648,
357 27.308797127469, 27.396768402154, 27.723518850987, 28.0, 28.39837398374,
358 28.739837398374, 29.593495934959, 30.333333333333, 30.617886178862,
359 30.731707317073, 30.845528455285, 31.471544715447, 32.439024390244,
360 33.463414634146, 35.0, 36.553784860558, 38.426294820717, 38.705179282869,
361 39.06374501992, 40.458167330677, 41.533864541833, 41.972111553785,
362 42.171314741036, 42.250996015936, 42.490039840637, 42.92828685259,
363 46.593625498008, 46.713147410359, 48.90438247012, 49.183266932271,
364 49.780876494024, 50.498007968127, 51.693227091633, 51.772908366534,
365 52.410358565737, 55.0, 55.966587112172, 57.971360381862, 58.758949880668,
366 61.193317422434, 62.44630071599, 63.556085918854, 69.391408114558,
367 69.677804295943, 69.892601431981, 70.429594272076, 76.658711217184,
368 78.985680190931, 81.169451073986, 82.136038186158, 87.792362768496,
369 91.945107398568, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
370 21.0, 21.414551607445, 21.639593908629, 21.971235194585, 22.137055837563,
371 22.219966159052, 22.56345177665, 23.653130287648, 24.032148900169,
372 24.434856175973, 24.529610829103, 25.098138747885, 25.524534686971,
373 25.737732656514, 25.986463620981, 26.06937394247, 26.24703891709,
374 26.507614213198, 26.756345177665, 27.005076142132, 27.514382402707,
375 27.869712351946, 27.917089678511, 28.0, 30.394736842105, 32.421052631579,
376 33.065789473684, 33.618421052632, 35.0, 35.668380462725, 35.925449871465,
377 36.028277634961, 36.131105398458, 36.696658097686, 37.570694087404,
378 38.496143958869, 39.884318766067, 41.889460154242, 44.305912596401,
379 44.665809768638, 45.12853470437, 46.928020565553, 48.316195372751,
380 48.881748071979, 49.13881748072, 49.241645244216, 49.550128534704,
381 50.115681233933, 54.845758354756, 55.0, 57.201957295374, 57.482206405694,
382 58.082740213523, 58.803380782918, 60.004448398577, 60.084519572954,
383 60.725088967972, 63.327402135231, 64.408362989324, 66.650355871886,
384 67.531138790036, 70.253558718861, 71.654804270463, 72.89590747331,
385 79.421708185053, 79.741992882562, 79.982206405694, 80.582740213523,
386 87.548932384342, 90.151245551601, 92.593416370107, 93.674377224199, 100.0,
387 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0,
388 21.822147651007, 22.268456375839, 22.926174496644, 23.255033557047,
389 23.419463087248, 24.10067114094, 26.261744966443, 27.013422818792,
390 27.812080536913, 28.0, 29.191489361702, 30.085106382979, 30.531914893617,
391 31.053191489362, 31.22695035461, 31.599290780142, 32.145390070922,
392 32.666666666667, 33.187943262411, 34.255319148936, 35.0, 35.298507462687,
393 35.820895522388, 37.761194029851, 39.402985074627, 39.925373134328,
394 40.373134328358, 41.492537313433, 42.462686567164, 42.835820895522,
395 42.985074626866, 43.134328358209, 43.955223880597, 45.223880597015,
396 46.567164179104, 48.582089552239, 51.492537313433, 55.0, 55.381355932203,
397 55.871670702179, 57.778450363196, 59.249394673123, 59.848668280872,
398 60.121065375303, 60.230024213075, 60.556900726392, 61.15617433414,
399 66.168280871671, 66.331719128329, 69.32808716707, 69.709443099274,
400 70.526634382567, 71.507263922518, 73.141646489104, 73.250605326877,
401 74.122276029056, 77.663438256659, 79.134382566586, 82.185230024213,
402 83.383777239709, 87.088377723971, 88.995157384988, 90.68401937046,
403 99.56416464891, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
404 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0, 28.0,
405 28.383285302594, 28.948126801153, 29.230547550432, 29.371757925072,
406 29.956772334294, 31.812680115274, 32.458213256484, 33.14409221902,
407 33.305475504323, 34.273775216138, 35.0, 36.333333333333, 37.888888888889,
408 38.407407407407, 39.518518518519, 41.148148148148, 42.703703703704,
409 44.259259259259, 47.444444444444, 49.666666666667, 49.962962962963,
410 50.481481481481, 52.407407407407, 54.037037037037, 54.555555555556, 55.0,
411 55.941422594142, 56.757322175732, 57.071129707113, 57.196652719665,
412 57.322175732218, 58.012552301255, 59.07949790795, 60.20920502092,
413 61.903765690377, 64.351464435146, 67.301255230126, 67.740585774059,
414 68.305439330544, 70.502092050209, 72.196652719665, 72.887029288703,
415 73.200836820084, 73.326359832636, 73.702928870293, 74.393305439331,
416 80.167364016736, 80.355648535565, 83.807531380753, 84.246861924686,
417 85.188284518828, 86.317991631799, 88.200836820084, 88.326359832636,
418 89.330543933054, 93.410041841004, 95.10460251046, 98.619246861925, 100.0,
419 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
420 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
421 28.0, 28.95703125, 29.4765625, 30.2421875, 30.625, 30.81640625, 31.609375,
422 34.125, 35.0, 37.098765432099, 37.592592592593, 40.555555555556,
423 42.777777777778, 43.888888888889, 45.185185185185, 45.617283950617,
424 46.543209876543, 47.901234567901, 49.197530864198, 50.493827160494,
425 53.148148148148, 55.0, 55.234680573664, 55.645371577575, 57.170795306389,
426 58.461538461538, 58.87222946545, 59.224250325945, 60.104302477184,
427 60.867014341591, 61.16036505867, 61.277705345502, 61.395045632334,
428 62.040417209909, 63.037809647979, 64.093872229465, 65.677966101695,
429 67.966101694915, 70.723598435463, 71.134289439374, 71.662320730117,
430 73.715775749674, 75.299869621904, 75.945241199478, 76.238591916558,
431 76.35593220339, 76.707953063885, 77.35332464146, 82.750977835724,
432 82.926988265971, 86.153846153846, 86.564537157757, 87.444589308996,
433 88.500651890482, 90.26075619296, 90.378096479791, 91.316818774446,
434 95.13037809648, 96.714471968709, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
435 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
436 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
437 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
438 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
439 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
440 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
441 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
442 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
443 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
444 100.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_PED_POS_MPV
445 * Referenced by: '<S85>/2D_Lookup_Table'
446 */
447
448real_T APTC_TRQ_PED_INV_MAP_TRQ_STEPS[83] = { 0.0, 20.0, 55.0, 74.0, 102.0,
449 116.0, 123.0, 152.0, 244.0, 276.0, 310.0, 318.0, 366.0, 402.0, 420.0, 441.0,
450 448.0, 463.0, 485.0, 506.0, 527.0, 570.0, 600.0, 604.0, 611.0, 637.0, 659.0,
451 666.0, 672.0, 687.0, 700.0, 705.0, 707.0, 709.0, 720.0, 737.0, 755.0, 782.0,
452 821.0, 868.0, 875.0, 884.0, 919.0, 946.0, 957.0, 962.0, 964.0, 970.0, 981.0,
453 1073.0, 1076.0, 1131.0, 1138.0, 1153.0, 1171.0, 1201.0, 1203.0, 1219.0, 1284.0,
454 1311.0, 1367.0, 1389.0, 1457.0, 1492.0, 1523.0, 1686.0, 1694.0, 1700.0, 1715.0,
455 1889.0, 1954.0, 2015.0, 2042.0, 2200.0, 2316.0, 2541.0, 2595.0, 2698.0, 2856.0,
456 2870.0, 2940.0, 2952.0, 2964.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_TRQ_STEPS
457 * Referenced by: '<S85>/2D_Lookup_Table'
458 */
459
460real_T APTC_TRQ_PED_TRQ_DATA_MPV[128] = { 0.0, 448.0, 570.0, 737.0, 981.0,
461 1138.0, 1311.0, 1457.0, 0.0, 420.0, 527.0, 720.0, 970.0, 1131.0, 1311.0,
462 1715.0, 0.0, 244.0, 506.0, 700.0, 964.0, 1171.0, 1523.0, 2316.0, 0.0, 152.0,
463 485.0, 709.0, 957.0, 1201.0, 1686.0, 2595.0, 0.0, 116.0, 463.0, 720.0, 946.0,
464 1219.0, 1954.0, 2870.0, 0.0, 74.0, 441.0, 705.0, 919.0, 1203.0, 2042.0, 2940.0,
465 0.0, 20.0, 310.0, 666.0, 884.0, 1153.0, 2015.0, 2952.0, 0.0, 20.0, 123.0,
466 637.0, 821.0, 1073.0, 1889.0, 2964.0, 0.0, 20.0, 20.0, 604.0, 755.0, 962.0,
467 1700.0, 2856.0, 0.0, 20.0, 20.0, 366.0, 707.0, 875.0, 1492.0, 2698.0, 0.0,
468 20.0, 20.0, 102.0, 659.0, 782.0, 1284.0, 2541.0, 0.0, 20.0, 20.0, 20.0, 611.0,
469 687.0, 1076.0, 2200.0, 0.0, 20.0, 20.0, 20.0, 318.0, 600.0, 868.0, 1694.0, 0.0,
470 20.0, 20.0, 20.0, 55.0, 402.0, 672.0, 1389.0, 0.0, 20.0, 20.0, 20.0, 20.0,
471 276.0, 600.0, 1367.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: APTC_TRQ_PED_TRQ_DATA_MPV
472 * Referenced by: '<S83>/2-D Lookup Table'
473 */
474
475real_T APTC_TRQ_PED_TRQ_ESPD_STEP_MPV[16] = { 500.0, 650.0, 885.0, 950.0, 1050.0,
476 1120.0, 1240.0, 1360.0, 1475.0, 1590.0, 1710.0, 1830.0, 1950.0, 2150.0, 2300.0,
477 2350.0 } ; /* Variable: APTC_TRQ_PED_TRQ_ESPD_STEP_MPV
478 * Referenced by:
479 * '<S83>/2-D Lookup Table'
480 * '<S85>/2D_Lookup_Table'
481 */
482
483real_T APTC_TRQ_PED_TRQ_POS_STEP_MPV[8] = { 0.0, 7.0, 14.0, 21.0, 28.0, 35.0,
484 55.0, 100.0 } ; /* Variable: APTC_TRQ_PED_TRQ_POS_STEP_MPV
485 * Referenced by: '<S83>/2-D Lookup Table'
486 */
487
488real_T BRK_DEM_KD_DATA_MPV[8] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: BRK_DEM_KD_DATA_MPV
489 * Referenced by: '<S143>/1D_Lookup_Table'
490 */
491
492real_T BRK_DEM_KI_DATA_MPV[8] = { -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
493} ; /* Variable: BRK_DEM_KI_DATA_MPV
494 * Referenced by: '<S142>/1D_Lookup_Table'
495 */
496
497real_T BRK_DEM_KP_DATA_MPV[8] = { -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0
498} ; /* Variable: BRK_DEM_KP_DATA_MPV
499 * Referenced by: '<S141>/1D_Lookup_Table'
500 */
501
502real_T BRK_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
503 40000.0, 50000.0, 54000.0 } ; /* Variable: BRK_DEM_MASS_STEP_MPV
504 * Referenced by:
505 * '<S141>/1D_Lookup_Table'
506 * '<S142>/1D_Lookup_Table'
507 * '<S143>/1D_Lookup_Table'
508 */
509
510real_T BRK_GOV_FF_DECEL_RATE_DATA_MPV[32] = { 0.0, -0.39, -1.76, -3.13, -4.5,
511 -5.87, -7.24, -8.61, -9.98, -11.35, -12.72, -14.09, -15.46, -16.83, -18.2,
512 -19.57, 0.0, -0.12, -0.53, -0.94, -1.35, -1.76, -2.17, -2.58, -2.99, -3.41,
513 -3.82, -4.23, -4.64, -5.05, -5.46, -5.87 } ;/* Variable: BRK_GOV_FF_DECEL_RATE_DATA_MPV
514 * Referenced by: '<S193>/2D_Lookup_Table'
515 */
516
517real_T BRK_GOV_FF_DECEL_RATE_STEP_MPV[16] = { -19.57, -18.2, -16.83, -15.46,
518 -14.09, -12.72, -11.35, -9.98, -8.61, -7.24, -5.87, -4.5, -3.13, -1.76, -0.39,
519 0.0 } ; /* Variable: BRK_GOV_FF_DECEL_RATE_STEP_MPV
520 * Referenced by:
521 * '<S194>/2D_Lookup_Table'
522 * '<S195>/2D_Lookup_Table'
523 */
524
525real_T BRK_GOV_FF_MASS_STEP_MPV[2] = { 9035.0, 36287.0 } ;/* Variable: BRK_GOV_FF_MASS_STEP_MPV
526 * Referenced by:
527 * '<S193>/2D_Lookup_Table'
528 * '<S194>/2D_Lookup_Table'
529 * '<S195>/2D_Lookup_Table'
530 */
531
532real_T BRK_GOV_FF_PRESS_KPA_DATA_MPV[32] = { 1034.0, 965.0, 896.0, 827.0, 758.0,
533 689.0, 621.0, 552.0, 483.0, 414.0, 345.0, 276.0, 207.0, 138.0, 69.0, 0.0,
534 2585.0, 2413.0, 2240.0, 2068.0, 1895.0, 1723.0, 1553.0, 1380.0, 1208.0, 1035.0,
535 863.0, 690.0, 518.0, 345.0, 173.0, 0.0 } ;/* Variable: BRK_GOV_FF_PRESS_KPA_DATA_MPV
536 * Referenced by:
537 * '<S194>/2D_Lookup_Table'
538 * '<S195>/2D_Lookup_Table'
539 */
540
541real_T BRK_GOV_FF_PRESS_KPA_STEP_MPV[16] = { 0.0, 69.0, 138.0, 207.0, 276.0,
542 345.0, 414.0, 483.0, 552.0, 621.0, 689.0, 758.0, 827.0, 896.0, 965.0, 1034.0 }
543; /* Variable: BRK_GOV_FF_PRESS_KPA_STEP_MPV
544 * Referenced by: '<S193>/2D_Lookup_Table'
545 */
546
547real_T Curvature_FF_Gain = 5.7; /* Variable: Curvature_FF_Gain
548 * Referenced by: '<S275>/FeedforwardGain'
549 */
550real_T DISTANCE_M = 200.0; /* Variable: DISTANCE_M
551 * Referenced by: '<S81>/DISTANCE_M'
552 */
553real_T Lateral_Control_Curvature_Limit = 0.5;/* Variable: Lateral_Control_Curvature_Limit
554 * Referenced by:
555 * '<S275>/Constant3'
556 * '<S275>/Constant5'
557 */
558real_T Lateral_Control_D = 0.1; /* Variable: Lateral_Control_D
559 * Referenced by: '<S301>/Derivative Gain'
560 */
561real_T Lateral_Control_Error_Limit = 0.1;/* Variable: Lateral_Control_Error_Limit
562 * Referenced by:
563 * '<S275>/Constant'
564 * '<S275>/Constant1'
565 */
566real_T Lateral_Control_Error_Rate_Limit = 0.05;/* Variable: Lateral_Control_Error_Rate_Limit
567 * Referenced by:
568 * '<S275>/Constant10'
569 * '<S275>/Constant7'
570 * '<S275>/Constant8'
571 * '<S275>/Constant9'
572 */
573real_T Lateral_Control_I = 0.0; /* Variable: Lateral_Control_I
574 * Referenced by: '<S301>/Integral Gain'
575 */
576real_T Lateral_Control_P = 0.5; /* Variable: Lateral_Control_P
577 * Referenced by:
578 * '<S275>/PGain'
579 * '<S301>/Proportional Gain'
580 */
581real_T Lateral_Control_Pole = 0.98; /* Variable: Lateral_Control_Pole
582 * Referenced by: '<S305>/GainPole'
583 */
584real_T Lateral_Control_Rate_Limit_APV = 0.05;/* Variable: Lateral_Control_Rate_Limit_APV
585 * Referenced by: '<S304>/Constant'
586 */
587real_T Lateral_Control_YawRate_Limit = 1.0;/* Variable: Lateral_Control_YawRate_Limit
588 * Referenced by:
589 * '<S275>/Constant2'
590 * '<S275>/Constant4'
591 */
592real_T Lateral_Control_Zero = 0.99; /* Variable: Lateral_Control_Zero
593 * Referenced by: '<S305>/GainZero'
594 */
595real_T PROPB_REAX_1_E4_DESIRED_POSITION_APV = 0.0;/* Variable: PROPB_REAX_1_E4_DESIRED_POSITION_APV
596 * Referenced by: '<S969>/Constant7'
597 */
598real_T REAX_OFFSET_APV = 0.0; /* Variable: REAX_OFFSET_APV
599 * Referenced by:
600 * '<S80>/Constant'
601 * '<S274>/ReAX Offset'
602 * '<S275>/Constant6'
603 */
604real_T STANLEY_GAIN_APV = 320.0; /* Variable: STANLEY_GAIN_APV
605 * Referenced by: '<S274>/StanleySteeringControlGain'
606 */
607real_T STEERCTRL_WHEEL_ANGLE_DATA_MPV[72] = { -800.02001953125, -780.02899169922,
608 -760.03399658203, -740.0, -720.0, -700.00402832031, -680.0, -660.01397705078,
609 -640.01898193359, -620.02398681641, -600.02001953125, -580.03399658203,
610 -560.03900146484, -540.0, -520.00402832031, -500.00900268555, -480.01400756836,
611 -460.01901245117, -440.02398681641, -420.01998901367, -400.03399658203,
612 -380.03900146484, -360.0, -340.00399780273, -320.00900268555, -300.01400756836,
613 -280.01901245117, -260.02398681641, -240.02900695801, -220.03399658203,
614 -200.03900146484, -180.0, -160.00399780273, -140.00900268555, -120.01399993896,
615 -100.01899719238, -80.024002075195, -60.028999328613, -40.034000396729,
616 0.52700001001358, 29.969999313354, 50.00899887085, 69.959999084473,
617 89.949996948242, 109.99500274658, 129.99000549316, 149.98500061035,
618 170.0240020752, 189.97500610352, 209.9700012207, 229.96499633789,
619 249.96000671387, 270.0, 289.99499511719, 309.98999023438, 329.98498535156,
620 349.98001098633, 369.97500610352, 390.01400756836, 410.00900268555, 450.0,
621 470.0299987793, 489.98999023438, 509.98498535156, 529.97998046875,
622 549.97497558594, 569.96997070313, 589.96502685547, 610.21997070313, 630.0,
623 650.25, 670.0 } ; /* Variable: STEERCTRL_WHEEL_ANGLE_DATA_MPV
624 * Referenced by: '<S270>/1D_Lookup_Table'
625 */
626
627real_T STEERCTRL_WHEEL_ANGLE_STEP_MPV[72] = { -46.0, -44.5, -43.0, -42.0, -40.0,
628 -39.0, -37.5, -36.5, -35.0, -34.0, -33.0, -31.5, -30.5, -29.0, -28.0, -26.5,
629 -25.5, -24.5, -23.5, -22.0, -21.0, -20.0, -19.0, -17.5, -16.5, -15.5, -14.0,
630 -13.0, -12.0, -11.0, -10.0, -8.5, -7.5, -6.5, -5.0, -4.0, -3.0, -2.0, -1.0,
631 0.0, 1.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0,
632 15.0, 16.0, 17.0, 18.5, 19.5, 20.5, 21.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5,
633 29.0, 30.0, 31.0, 31.5, 32.5, 33.0 } ;/* Variable: STEERCTRL_WHEEL_ANGLE_STEP_MPV
634 * Referenced by: '<S270>/1D_Lookup_Table'
635 */
636
637real_T TQ_DEM_GEAR_RATIO_STEP_MPV[8] = { 0.0, 0.2, 4.0, 8.0, 10.0, 16.0, 18.0,
638 20.0 } ; /* Variable: TQ_DEM_GEAR_RATIO_STEP_MPV
639 * Referenced by:
640 * '<S235>/2D_Lookup_Table'
641 * '<S236>/2D_Lookup_Table'
642 * '<S237>/2D_Lookup_Table'
643 */
644
645real_T TQ_DEM_KD_DATA_MPV[64] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
646 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
647 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
648 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
649 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: TQ_DEM_KD_DATA_MPV
650 * Referenced by: '<S237>/2D_Lookup_Table'
651 */
652
653real_T TQ_DEM_KI_DATA_MPV[64] = { 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
654 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
655 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
656 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
657 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 } ;/* Variable: TQ_DEM_KI_DATA_MPV
658 * Referenced by: '<S236>/2D_Lookup_Table'
659 */
660
661real_T TQ_DEM_KP_DATA_MPV[64] = { 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
662 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
663 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
664 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
665 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0 } ;/* Variable: TQ_DEM_KP_DATA_MPV
666 * Referenced by: '<S235>/2D_Lookup_Table'
667 */
668
669real_T TQ_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
670 40000.0, 50000.0, 54000.0 } ; /* Variable: TQ_DEM_MASS_STEP_MPV
671 * Referenced by:
672 * '<S235>/2D_Lookup_Table'
673 * '<S236>/2D_Lookup_Table'
674 * '<S237>/2D_Lookup_Table'
675 */
676
677real_T UndersteerCorection = 0.5; /* Variable: UndersteerCorection
678 * Referenced by: '<S275>/UndersteerCorrection'
679 */
680real_T VSPD_TARGET_KPH_APV = 0.0; /* Variable: VSPD_TARGET_KPH_APV
681 * Referenced by: '<S81>/VSPD_TARGET_KPH_APV'
682 */
683real_T YAW_RATE_OFFSET_APV = -0.0066; /* Variable: YAW_RATE_OFFSET_APV
684 * Referenced by: '<S275>/YAW_RATE_OFFSET_APV'
685 */
686real_T Yaw_Rate_FF_Gain = 0.1; /* Variable: Yaw_Rate_FF_Gain
687 * Referenced by: '<S275>/RateFeedbackGain'
688 */
689ENUM_AUTONOMOUS_MODE_T AUTONOMOUS_MODE_SELECTOR_APV =
690 ENUM_AUTONOMOUS_MODE_T_AUTO; /* Variable: AUTONOMOUS_MODE_SELECTOR_APV
691 * Referenced by: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
692 */
693ENUM_CAN_RX_T CANR_PROPB_XPR_1_50_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_3;/* Variable: CANR_PROPB_XPR_1_50_CHANNEL_APV
694 * Referenced by: '<S441>/Constant'
695 */
696ENUM_CAN_RX_T PROPB_REAX_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_2;/* Variable: PROPB_REAX_CHANNEL_APV
697 * Referenced by:
698 * '<S439>/Constant'
699 * '<S440>/Constant'
700 * '<S461>/Constant3'
701 */
702ENUM_LAT_STEER_SOURCE_T LAT_STEER_SRC_SELECTOR_APV =
703 ENUM_LAT_STEER_SOURCE_T_PIC_HARIS; /* Variable: LAT_STEER_SRC_SELECTOR_APV
704 * Referenced by: '<S80>/LAT_STEER_SRC_SELECTOR_APV'
705 */
706ENUM_LONG_SPEED_DEMAND_SOURCE_T LONG_SPEED_SRC_SELECTOR_APV =
707 ENUM_LONG_SPEED_DEMAND_SOURCE_T_WAYPOINTS;/* Variable: LONG_SPEED_SRC_SELECTOR_APV
708 * Referenced by:
709 * '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
710 * '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
711 */
712ENUM_REAX_OPERATION_MODE_T PROPB_REAX_1_E4_DESIRED_OPMODE_APV =
713 ENUM_REAX_OPERATION_MODE_T_POSITION_CTRL_MODE;/* Variable: PROPB_REAX_1_E4_DESIRED_OPMODE_APV
714 * Referenced by: '<S952>/Constant6'
715 */
716ENUM_STEERING_POS_SIGNAL_SOURCE_T PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV =
717 ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION;/* Variable: PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV
718 * Referenced by: '<S969>/Constant1'
719 */
720ENUM_SWITCH_T RATE_LIMITER_ENABLE_APV = ENUM_SWITCH_T_ON;/* Variable: RATE_LIMITER_ENABLE_APV
721 * Referenced by: '<S304>/RATE_LIMITER_ENABLE_APV'
722 */
723
724/* Block signals (default storage) */
725B_L4_MABX_T L4_MABX_B;
726
727/* Block states (default storage) */
728DW_L4_MABX_T L4_MABX_DW;
729
730/* Previous zero-crossings (trigger) states */
731PrevZCX_L4_MABX_T L4_MABX_PrevZCX;
732
733/* Real-time model */
734RT_MODEL_L4_MABX_T L4_MABX_M_;
735RT_MODEL_L4_MABX_T *const L4_MABX_M = &L4_MABX_M_;
736
737/* Forward declaration for local functions */
738static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input);
739static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input);
740static void L4_MABX_enter_atomic_INITIAL(void);
741static void L4_MABX_Calculate_abc(void);
742static void L4_MABX_CalculateAlternate_abc(void);
743static void L4_MABX_CalculateAcceleration34(void);
744static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input);
745
746/* Lookup Binary Search Utility BINARYSEARCH_real_T */
747void BINARYSEARCH_real_T(uint32_T *piLeft, uint32_T *piRght, real_T u, const
748 real_T *pData, uint32_T iHi)
749{
750 /* Find the location of current input value in the data table. */
751 *piLeft = 0U;
752 *piRght = iHi;
753 if (u <= pData[0] ) {
754 /* Less than or equal to the smallest point in the table. */
755 *piRght = 0U;
756 } else if (u >= pData[iHi] ) {
757 /* Greater than or equal to the largest point in the table. */
758 *piLeft = iHi;
759 } else {
760 uint32_T i;
761
762 /* Do a binary search. */
763 while (( *piRght - *piLeft ) > 1U ) {
764 /* Get the average of the left and right indices using to Floor rounding. */
765 i = (*piLeft + *piRght) >> 1;
766
767 /* Move either the right index or the left index so that */
768 /* LeftDataPoint <= CurrentValue < RightDataPoint */
769 if (u < pData[i] ) {
770 *piRght = i;
771 } else {
772 *piLeft = i;
773 }
774 }
775 }
776}
777
778/* Lookup Utility LookUp_real_T_real_T */
779void LookUp_real_T_real_T(real_T *pY, const real_T *pYData, real_T u, const
780 real_T *pUData, uint32_T iHi)
781{
782 uint32_T iLeft;
783 uint32_T iRght;
784 BINARYSEARCH_real_T( &(iLeft), &(iRght), u, pUData, iHi);
785
786 {
787 real_T lambda;
788 if (pUData[iRght] > pUData[iLeft] ) {
789 real_T num;
790 real_T den;
791 den = pUData[iRght];
792 den -= pUData[iLeft];
793 num = u;
794 num -= pUData[iLeft];
795 lambda = num / den;
796 } else {
797 lambda = 0.0;
798 }
799
800 {
801 real_T yLeftCast;
802 real_T yRghtCast;
803 yLeftCast = pYData[iLeft];
804 yRghtCast = pYData[iRght];
805 yLeftCast += lambda * ( yRghtCast - yLeftCast );
806 (*pY) = yLeftCast;
807 }
808 }
809}
810
811real_T look1_binlcapw(real_T u0, const real_T bp0[], const real_T table[],
812 uint32_T maxIndex)
813{
814 real_T y;
815 real_T frac;
816 uint32_T iRght;
817 uint32_T iLeft;
818 uint32_T bpIdx;
819
820 /* Lookup 1-D
821 Search method: 'binary'
822 Use previous index: 'off'
823 Interpolation method: 'Linear point-slope'
824 Extrapolation method: 'Clip'
825 Use last breakpoint for index at or above upper limit: 'on'
826 Remove protection against out-of-range input in generated code: 'off'
827 */
828 /* Prelookup - Index and Fraction
829 Index Search method: 'binary'
830 Extrapolation method: 'Clip'
831 Use previous index: 'off'
832 Use last breakpoint for index at or above upper limit: 'on'
833 Remove protection against out-of-range input in generated code: 'off'
834 */
835 if (u0 <= bp0[0U]) {
836 iLeft = 0U;
837 frac = 0.0;
838 } else if (u0 < bp0[maxIndex]) {
839 /* Binary Search */
840 bpIdx = maxIndex >> 1U;
841 iLeft = 0U;
842 iRght = maxIndex;
843 while (iRght - iLeft > 1U) {
844 if (u0 < bp0[bpIdx]) {
845 iRght = bpIdx;
846 } else {
847 iLeft = bpIdx;
848 }
849
850 bpIdx = (iRght + iLeft) >> 1U;
851 }
852
853 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
854 } else {
855 iLeft = maxIndex;
856 frac = 0.0;
857 }
858
859 /* Interpolation 1-D
860 Interpolation method: 'Linear point-slope'
861 Use last breakpoint for index at or above upper limit: 'on'
862 Overflow mode: 'portable wrapping'
863 */
864 if (iLeft == maxIndex) {
865 y = table[iLeft];
866 } else {
867 y = (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
868 }
869
870 return y;
871}
872
873real_T look2_binlcapw(real_T u0, real_T u1, const real_T bp0[], const real_T
874 bp1[], const real_T table[], const uint32_T maxIndex[],
875 uint32_T stride)
876{
877 real_T y;
878 real_T frac;
879 uint32_T bpIndices[2];
880 real_T fractions[2];
881 real_T yR_1d;
882 uint32_T iRght;
883 uint32_T bpIdx;
884 uint32_T iLeft;
885
886 /* Lookup 2-D
887 Search method: 'binary'
888 Use previous index: 'off'
889 Interpolation method: 'Linear point-slope'
890 Extrapolation method: 'Clip'
891 Use last breakpoint for index at or above upper limit: 'on'
892 Remove protection against out-of-range input in generated code: 'off'
893 */
894 /* Prelookup - Index and Fraction
895 Index Search method: 'binary'
896 Extrapolation method: 'Clip'
897 Use previous index: 'off'
898 Use last breakpoint for index at or above upper limit: 'on'
899 Remove protection against out-of-range input in generated code: 'off'
900 */
901 if (u0 <= bp0[0U]) {
902 iLeft = 0U;
903 frac = 0.0;
904 } else if (u0 < bp0[maxIndex[0U]]) {
905 /* Binary Search */
906 bpIdx = maxIndex[0U] >> 1U;
907 iLeft = 0U;
908 iRght = maxIndex[0U];
909 while (iRght - iLeft > 1U) {
910 if (u0 < bp0[bpIdx]) {
911 iRght = bpIdx;
912 } else {
913 iLeft = bpIdx;
914 }
915
916 bpIdx = (iRght + iLeft) >> 1U;
917 }
918
919 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
920 } else {
921 iLeft = maxIndex[0U];
922 frac = 0.0;
923 }
924
925 fractions[0U] = frac;
926 bpIndices[0U] = iLeft;
927
928 /* Prelookup - Index and Fraction
929 Index Search method: 'binary'
930 Extrapolation method: 'Clip'
931 Use previous index: 'off'
932 Use last breakpoint for index at or above upper limit: 'on'
933 Remove protection against out-of-range input in generated code: 'off'
934 */
935 if (u1 <= bp1[0U]) {
936 iLeft = 0U;
937 frac = 0.0;
938 } else if (u1 < bp1[maxIndex[1U]]) {
939 /* Binary Search */
940 bpIdx = maxIndex[1U] >> 1U;
941 iLeft = 0U;
942 iRght = maxIndex[1U];
943 while (iRght - iLeft > 1U) {
944 if (u1 < bp1[bpIdx]) {
945 iRght = bpIdx;
946 } else {
947 iLeft = bpIdx;
948 }
949
950 bpIdx = (iRght + iLeft) >> 1U;
951 }
952
953 frac = (u1 - bp1[iLeft]) / (bp1[iLeft + 1U] - bp1[iLeft]);
954 } else {
955 iLeft = maxIndex[1U];
956 frac = 0.0;
957 }
958
959 /* Interpolation 2-D
960 Interpolation method: 'Linear point-slope'
961 Use last breakpoint for index at or above upper limit: 'on'
962 Overflow mode: 'portable wrapping'
963 */
964 bpIdx = iLeft * stride + bpIndices[0U];
965 if (bpIndices[0U] == maxIndex[0U]) {
966 y = table[bpIdx];
967 } else {
968 y = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
969 }
970
971 if (iLeft == maxIndex[1U]) {
972 } else {
973 bpIdx += stride;
974 if (bpIndices[0U] == maxIndex[0U]) {
975 yR_1d = table[bpIdx];
976 } else {
977 yR_1d = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
978 }
979
980 y += (yR_1d - y) * frac;
981 }
982
983 return y;
984}
985
986real_T look1_binlxpw(real_T u0, const real_T bp0[], const real_T table[],
987 uint32_T maxIndex)
988{
989 real_T frac;
990 uint32_T iRght;
991 uint32_T iLeft;
992 uint32_T bpIdx;
993
994 /* Lookup 1-D
995 Search method: 'binary'
996 Use previous index: 'off'
997 Interpolation method: 'Linear point-slope'
998 Extrapolation method: 'Linear'
999 Use last breakpoint for index at or above upper limit: 'off'
1000 Remove protection against out-of-range input in generated code: 'off'
1001 */
1002 /* Prelookup - Index and Fraction
1003 Index Search method: 'binary'
1004 Extrapolation method: 'Linear'
1005 Use previous index: 'off'
1006 Use last breakpoint for index at or above upper limit: 'off'
1007 Remove protection against out-of-range input in generated code: 'off'
1008 */
1009 if (u0 <= bp0[0U]) {
1010 iLeft = 0U;
1011 frac = (u0 - bp0[0U]) / (bp0[1U] - bp0[0U]);
1012 } else if (u0 < bp0[maxIndex]) {
1013 /* Binary Search */
1014 bpIdx = maxIndex >> 1U;
1015 iLeft = 0U;
1016 iRght = maxIndex;
1017 while (iRght - iLeft > 1U) {
1018 if (u0 < bp0[bpIdx]) {
1019 iRght = bpIdx;
1020 } else {
1021 iLeft = bpIdx;
1022 }
1023
1024 bpIdx = (iRght + iLeft) >> 1U;
1025 }
1026
1027 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
1028 } else {
1029 iLeft = maxIndex - 1U;
1030 frac = (u0 - bp0[maxIndex - 1U]) / (bp0[maxIndex] - bp0[maxIndex - 1U]);
1031 }
1032
1033 /* Interpolation 1-D
1034 Interpolation method: 'Linear point-slope'
1035 Use last breakpoint for index at or above upper limit: 'off'
1036 Overflow mode: 'portable wrapping'
1037 */
1038 return (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
1039}
1040
1041/*
1042 * Output and update for atomic system:
1043 * '<S82>/If_Then_Else'
1044 * '<S83>/If_Then_Else'
1045 * '<S83>/If_Then_Else1'
1046 * '<S89>/If_Then_Else'
1047 * '<S89>/If_Then_Else1'
1048 * '<S90>/If_Then_Else'
1049 * '<S90>/If_Then_Else1'
1050 * '<S115>/If_Then_Else'
1051 * '<S118>/If_Then_Else'
1052 * '<S120>/If_Then_Else'
1053 * ...
1054 */
1055void L4_MABX_If_Then_Else(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1056 B_If_Then_Else_L4_MABX_T *localB)
1057{
1058 /* Switch: '<S86>/Switch' */
1059 if (rtu_If) {
1060 localB->Switch = rtu_Then;
1061 } else {
1062 localB->Switch = rtu_Else;
1063 }
1064
1065 /* End of Switch: '<S86>/Switch' */
1066}
1067
1068/*
1069 * System initialize for enable system:
1070 * '<S106>/Calculate_D_term'
1071 * '<S144>/Calculate_D_term'
1072 * '<S238>/Calculate_D_term'
1073 */
1074void L4_MA_Calculate_D_term_Init(B_Calculate_D_term_L4_MABX_T *localB,
1075 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1076{
1077 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1078 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1079
1080 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1081 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1082
1083 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1084 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1085
1086 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1087 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1088
1089 /* SystemInitialize for Outport: '<S110>/GPID_d_term' */
1090 localB->Subtract = localP->GPID_d_term_Y0;
1091}
1092
1093/*
1094 * System reset for enable system:
1095 * '<S106>/Calculate_D_term'
1096 * '<S144>/Calculate_D_term'
1097 * '<S238>/Calculate_D_term'
1098 */
1099void L4_M_Calculate_D_term_Reset(DW_Calculate_D_term_L4_MABX_T *localDW,
1100 P_Calculate_D_term_L4_MABX_T *localP)
1101{
1102 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1103 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1104
1105 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1106 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1107
1108 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1109 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1110
1111 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1112 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1113}
1114
1115/*
1116 * Disable for enable system:
1117 * '<S106>/Calculate_D_term'
1118 * '<S144>/Calculate_D_term'
1119 * '<S238>/Calculate_D_term'
1120 */
1121void L4_Calculate_D_term_Disable(B_Calculate_D_term_L4_MABX_T *localB,
1122 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1123{
1124 /* Disable for Outport: '<S110>/GPID_d_term' */
1125 localB->Subtract = localP->GPID_d_term_Y0;
1126 localDW->Calculate_D_term_MODE = false;
1127}
1128
1129/*
1130 * Start for enable system:
1131 * '<S106>/Calculate_D_term'
1132 * '<S144>/Calculate_D_term'
1133 * '<S238>/Calculate_D_term'
1134 */
1135void L4_M_Calculate_D_term_Start(DW_Calculate_D_term_L4_MABX_T *localDW)
1136{
1137 localDW->Calculate_D_term_MODE = false;
1138}
1139
1140/*
1141 * Outputs for enable system:
1142 * '<S106>/Calculate_D_term'
1143 * '<S144>/Calculate_D_term'
1144 * '<S238>/Calculate_D_term'
1145 */
1146void L4_MABX_Calculate_D_term(boolean_T rtu_Enable, real_T rtu_GPID_Kd, real_T
1147 rtu_GPID_dT, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_control_error,
1148 real_T rtu_GPID_T_filt_d, B_Calculate_D_term_L4_MABX_T *localB,
1149 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1150{
1151 real_T maxV;
1152 real_T u1;
1153 real_T u2;
1154
1155 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1156 * EnablePort: '<S110>/Enable'
1157 */
1158 if (rtu_Enable) {
1159 if (!localDW->Calculate_D_term_MODE) {
1160 L4_M_Calculate_D_term_Reset(localDW, localP);
1161 localDW->Calculate_D_term_MODE = true;
1162 }
1163
1164 /* UnitDelay: '<S115>/Unit_Delay1' */
1165 localB->Unit_Delay1 = localDW->Unit_Delay1_DSTATE;
1166
1167 /* Logic: '<S115>/Logical Operator' */
1168 localB->LogicalOperator = (rtu_F_GPID_reset_gov || localB->Unit_Delay1);
1169
1170 /* MinMax: '<S115>/MinMax1' */
1171 if ((rtu_GPID_dT > rtu_GPID_T_filt_d) || rtIsNaN(rtu_GPID_T_filt_d)) {
1172 maxV = rtu_GPID_dT;
1173 } else {
1174 maxV = rtu_GPID_T_filt_d;
1175 }
1176
1177 localB->MinMax1 = maxV;
1178
1179 /* End of MinMax: '<S115>/MinMax1' */
1180
1181 /* Saturate: '<S115>/Saturation' */
1182 maxV = localB->MinMax1;
1183 u1 = localP->Saturation_LowerSat;
1184 u2 = localP->Saturation_UpperSat;
1185 if (maxV > u2) {
1186 localB->Saturation = u2;
1187 } else if (maxV < u1) {
1188 localB->Saturation = u1;
1189 } else {
1190 localB->Saturation = maxV;
1191 }
1192
1193 /* End of Saturate: '<S115>/Saturation' */
1194
1195 /* Product: '<S115>/Divide' */
1196 localB->Divide = rtu_GPID_dT / localB->Saturation;
1197
1198 /* Product: '<S115>/Product2' */
1199 localB->Product2 = rtu_GPID_control_error * localB->Divide;
1200
1201 /* Sum: '<S115>/Subtract1' incorporates:
1202 * Constant: '<S115>/Constant1'
1203 */
1204 localB->Subtract1 = localP->Constant1_Value - localB->Divide;
1205
1206 /* UnitDelay: '<S115>/Unit_Delay2' */
1207 localB->Unit_Delay2 = localDW->Unit_Delay2_DSTATE;
1208
1209 /* Product: '<S115>/Product1' */
1210 localB->Product1 = localB->Subtract1 * localB->Unit_Delay2;
1211
1212 /* Sum: '<S115>/Add1' */
1213 localB->Add1 = localB->Product2 + localB->Product1;
1214
1215 /* Outputs for Atomic SubSystem: '<S115>/If_Then_Else' */
1216 L4_MABX_If_Then_Else(localB->LogicalOperator, rtu_GPID_control_error,
1217 localB->Add1, &localB->If_Then_Else);
1218
1219 /* End of Outputs for SubSystem: '<S115>/If_Then_Else' */
1220
1221 /* Product: '<S110>/Divide' */
1222 localB->Divide_k = localB->If_Then_Else.Switch / rtu_GPID_dT * rtu_GPID_Kd;
1223
1224 /* UnitDelay: '<S116>/FixPt Unit Delay2' */
1225 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1226
1227 /* Logic: '<S116>/FixPt Logical Operator' */
1228 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1229 (localB->FixPtUnitDelay2 != 0));
1230
1231 /* UnitDelay: '<S116>/FixPt Unit Delay1' */
1232 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1233
1234 /* Switch: '<S116>/Init' */
1235 if (localB->FixPtLogicalOperator != 0) {
1236 localB->Init = localB->Divide_k;
1237 } else {
1238 localB->Init = localB->Xold;
1239 }
1240
1241 /* End of Switch: '<S116>/Init' */
1242
1243 /* Sum: '<S110>/Subtract' */
1244 localB->Subtract = localB->Divide_k - localB->Init;
1245
1246 /* Switch: '<S116>/Reset' */
1247 localB->Xnew = localB->Divide_k;
1248 } else {
1249 if (localDW->Calculate_D_term_MODE) {
1250 L4_Calculate_D_term_Disable(localB, localDW, localP);
1251 }
1252 }
1253
1254 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
1255}
1256
1257/*
1258 * Update for enable system:
1259 * '<S106>/Calculate_D_term'
1260 * '<S144>/Calculate_D_term'
1261 * '<S238>/Calculate_D_term'
1262 */
1263void L4__Calculate_D_term_Update(B_Calculate_D_term_L4_MABX_T *localB,
1264 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1265{
1266 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1267 * EnablePort: '<S110>/Enable'
1268 */
1269 if (localDW->Calculate_D_term_MODE) {
1270 /* Update for UnitDelay: '<S115>/Unit_Delay1' incorporates:
1271 * Constant: '<S115>/Constant'
1272 */
1273 localDW->Unit_Delay1_DSTATE = localP->Constant_Value;
1274
1275 /* Update for UnitDelay: '<S115>/Unit_Delay2' */
1276 localDW->Unit_Delay2_DSTATE = localB->If_Then_Else.Switch;
1277
1278 /* Update for UnitDelay: '<S116>/FixPt Unit Delay2' incorporates:
1279 * Constant: '<S116>/FixPt Constant'
1280 */
1281 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1282
1283 /* Update for UnitDelay: '<S116>/FixPt Unit Delay1' */
1284 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1285 }
1286
1287 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
1288}
1289
1290/*
1291 * Output and update for atomic system:
1292 * '<S120>/If_Then_Else3'
1293 * '<S158>/If_Then_Else3'
1294 * '<S252>/If_Then_Else3'
1295 * '<S461>/If_Then_Else'
1296 * '<S1052>/If_Then_Else'
1297 */
1298void L4_MABX_If_Then_Else3(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1299 rtu_Else, B_If_Then_Else_L4_MABX_c_T *localB)
1300{
1301 /* Switch: '<S128>/Switch' */
1302 if (rtu_If) {
1303 localB->Switch = rtu_Then;
1304 } else {
1305 localB->Switch = rtu_Else;
1306 }
1307
1308 /* End of Switch: '<S128>/Switch' */
1309}
1310
1311/*
1312 * System initialize for enable system:
1313 * '<S106>/Calculate_I_term'
1314 * '<S144>/Calculate_I_term'
1315 * '<S238>/Calculate_I_term'
1316 */
1317void L4_MA_Calculate_I_term_Init(B_Calculate_I_term_L4_MABX_T *localB,
1318 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1319{
1320 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1321 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1322
1323 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1324 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1325
1326 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1327 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1328
1329 /* SystemInitialize for Enabled SubSystem: '<S111>/Initialize_integral_term' */
1330 /* SystemInitialize for Outport: '<S119>/GPID_i_sum_error_init' */
1331 localB->Subtract2 = localP->GPID_i_sum_error_init_Y0;
1332
1333 /* End of SystemInitialize for SubSystem: '<S111>/Initialize_integral_term' */
1334
1335 /* SystemInitialize for Outport: '<S111>/GPID_i_term' */
1336 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1337
1338 /* SystemInitialize for Outport: '<S111>/F_GPID_hold_i_term' */
1339 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1340}
1341
1342/*
1343 * System reset for enable system:
1344 * '<S106>/Calculate_I_term'
1345 * '<S144>/Calculate_I_term'
1346 * '<S238>/Calculate_I_term'
1347 */
1348void L4_M_Calculate_I_term_Reset(DW_Calculate_I_term_L4_MABX_T *localDW,
1349 P_Calculate_I_term_L4_MABX_T *localP)
1350{
1351 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1352 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1353
1354 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1355 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1356
1357 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1358 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1359}
1360
1361/*
1362 * Disable for enable system:
1363 * '<S106>/Calculate_I_term'
1364 * '<S144>/Calculate_I_term'
1365 * '<S238>/Calculate_I_term'
1366 */
1367void L4_Calculate_I_term_Disable(B_Calculate_I_term_L4_MABX_T *localB,
1368 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1369{
1370 /* Disable for Outport: '<S111>/GPID_i_term' */
1371 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1372
1373 /* Disable for Outport: '<S111>/F_GPID_hold_i_term' */
1374 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1375 localDW->Calculate_I_term_MODE = false;
1376}
1377
1378/*
1379 * Start for enable system:
1380 * '<S106>/Calculate_I_term'
1381 * '<S144>/Calculate_I_term'
1382 * '<S238>/Calculate_I_term'
1383 */
1384void L4_M_Calculate_I_term_Start(DW_Calculate_I_term_L4_MABX_T *localDW)
1385{
1386 localDW->Calculate_I_term_MODE = false;
1387}
1388
1389/*
1390 * Outputs for enable system:
1391 * '<S106>/Calculate_I_term'
1392 * '<S144>/Calculate_I_term'
1393 * '<S238>/Calculate_I_term'
1394 */
1395void L4_MABX_Calculate_I_term(boolean_T rtu_Enable, real_T rtu_GPID_p_term,
1396 real_T rtu_GPID_Ki, real_T rtu_GPID_actual_system_output, real_T
1397 rtu_GPID_control_error, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_dT,
1398 real_T rtu_GPID_feed_forward, boolean_T rtu_F_GPID_aw_cond_integration, real_T
1399 rtu_GPID_aw_hysteresis, boolean_T rtu_F_GPID_aw_hold_i_term, real_T
1400 rtu_GPID_output_unlim_prev, B_Calculate_I_term_L4_MABX_T *localB,
1401 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1402{
1403 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1404 * EnablePort: '<S111>/Enable'
1405 */
1406 if (rtu_Enable) {
1407 if (!localDW->Calculate_I_term_MODE) {
1408 L4_M_Calculate_I_term_Reset(localDW, localP);
1409 localDW->Calculate_I_term_MODE = true;
1410 }
1411
1412 /* Outputs for Enabled SubSystem: '<S111>/Initialize_integral_term' incorporates:
1413 * EnablePort: '<S119>/Enable'
1414 */
1415 if (rtu_F_GPID_reset_gov) {
1416 /* Product: '<S119>/Product' */
1417 localB->Product_j = rtu_GPID_Ki * rtu_GPID_dT * rtu_GPID_control_error;
1418
1419 /* Sum: '<S119>/Subtract' */
1420 localB->Subtract_g = rtu_GPID_actual_system_output - rtu_GPID_feed_forward;
1421
1422 /* Sum: '<S119>/Subtract1' */
1423 localB->Subtract1_k = localB->Subtract_g - rtu_GPID_p_term;
1424
1425 /* Sum: '<S119>/Subtract2' */
1426 localB->Subtract2 = localB->Subtract1_k - localB->Product_j;
1427 }
1428
1429 /* End of Outputs for SubSystem: '<S111>/Initialize_integral_term' */
1430
1431 /* UnitDelay: '<S122>/FixPt Unit Delay2' */
1432 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1433
1434 /* Logic: '<S122>/FixPt Logical Operator' */
1435 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1436 (localB->FixPtUnitDelay2 != 0));
1437
1438 /* UnitDelay: '<S122>/FixPt Unit Delay1' */
1439 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1440
1441 /* Switch: '<S122>/Init' */
1442 if (localB->FixPtLogicalOperator != 0) {
1443 localB->Init = localB->Subtract2;
1444 } else {
1445 localB->Init = localB->Xold;
1446 }
1447
1448 /* End of Switch: '<S122>/Init' */
1449
1450 /* Product: '<S118>/Product1' */
1451 localB->Product1 = rtu_GPID_Ki * rtu_GPID_control_error * rtu_GPID_dT;
1452
1453 /* Sum: '<S118>/Add' */
1454 localB->Add = localB->Init + localB->Product1;
1455
1456 /* UnitDelay: '<S111>/Unit_Delay' */
1457 localB->Unit_Delay = localDW->Unit_Delay_DSTATE;
1458
1459 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else' */
1460
1461 /* Constant: '<S120>/Constant' */
1462 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, localP->Constant_Value,
1463 localB->Unit_Delay, &localB->If_Then_Else_c);
1464
1465 /* End of Outputs for SubSystem: '<S120>/If_Then_Else' */
1466
1467 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else2' */
1468 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, rtu_GPID_actual_system_output,
1469 rtu_GPID_output_unlim_prev, &localB->If_Then_Else2);
1470
1471 /* End of Outputs for SubSystem: '<S120>/If_Then_Else2' */
1472
1473 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else1' */
1474 L4_MABX_If_Then_Else(rtu_F_GPID_aw_cond_integration,
1475 localB->If_Then_Else_c.Switch,
1476 localB->If_Then_Else2.Switch, &localB->If_Then_Else1);
1477
1478 /* End of Outputs for SubSystem: '<S120>/If_Then_Else1' */
1479
1480 /* Product: '<S120>/Product' */
1481 localB->Product = rtu_GPID_Ki * rtu_GPID_control_error *
1482 localB->If_Then_Else1.Switch;
1483
1484 /* RelationalOperator: '<S123>/Compare' incorporates:
1485 * Constant: '<S123>/Constant'
1486 */
1487 localB->Compare = (localB->Product > localP->Constant_Value_p);
1488
1489 /* RelationalOperator: '<S124>/Compare' incorporates:
1490 * Constant: '<S124>/Constant'
1491 */
1492 localB->Compare_n = (localB->Unit_Delay >= localP->Constant_Value_b);
1493
1494 /* Sum: '<S120>/Subtract' */
1495 localB->Subtract = localB->If_Then_Else2.Switch -
1496 rtu_GPID_actual_system_output;
1497
1498 /* RelationalOperator: '<S120>/Relational Operator1' */
1499 localB->RelationalOperator1 = (localB->Subtract > rtu_GPID_aw_hysteresis);
1500
1501 /* Sum: '<S120>/Subtract1' */
1502 localB->Subtract1 = rtu_GPID_actual_system_output -
1503 localB->If_Then_Else2.Switch;
1504
1505 /* RelationalOperator: '<S120>/Relational Operator2' */
1506 localB->RelationalOperator2 = (localB->Subtract1 > rtu_GPID_aw_hysteresis);
1507
1508 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else3' */
1509 L4_MABX_If_Then_Else3(localB->Compare_n, localB->RelationalOperator1,
1510 localB->RelationalOperator2, &localB->If_Then_Else3);
1511
1512 /* End of Outputs for SubSystem: '<S120>/If_Then_Else3' */
1513
1514 /* Logic: '<S120>/Logical Operator1' */
1515 localB->LogicalOperator1 = (localB->Compare && localB->If_Then_Else3.Switch);
1516
1517 /* Logic: '<S120>/Logical Operator2' */
1518 localB->LogicalOperator2 = (localB->LogicalOperator1 ||
1519 rtu_F_GPID_aw_hold_i_term);
1520
1521 /* Outputs for Atomic SubSystem: '<S118>/If_Then_Else' */
1522 L4_MABX_If_Then_Else(localB->LogicalOperator2, localB->Init, localB->Add,
1523 &localB->If_Then_Else);
1524
1525 /* End of Outputs for SubSystem: '<S118>/If_Then_Else' */
1526
1527 /* Switch: '<S122>/Reset' */
1528 if (rtu_F_GPID_reset_gov) {
1529 localB->Xnew = localB->Subtract2;
1530 } else {
1531 localB->Xnew = localB->If_Then_Else.Switch;
1532 }
1533
1534 /* End of Switch: '<S122>/Reset' */
1535 } else {
1536 if (localDW->Calculate_I_term_MODE) {
1537 L4_Calculate_I_term_Disable(localB, localDW, localP);
1538 }
1539 }
1540
1541 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
1542}
1543
1544/*
1545 * Update for enable system:
1546 * '<S106>/Calculate_I_term'
1547 * '<S144>/Calculate_I_term'
1548 * '<S238>/Calculate_I_term'
1549 */
1550void L4__Calculate_I_term_Update(B_Calculate_I_term_L4_MABX_T *localB,
1551 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1552{
1553 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1554 * EnablePort: '<S111>/Enable'
1555 */
1556 if (localDW->Calculate_I_term_MODE) {
1557 /* Update for UnitDelay: '<S122>/FixPt Unit Delay2' incorporates:
1558 * Constant: '<S122>/FixPt Constant'
1559 */
1560 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1561
1562 /* Update for UnitDelay: '<S122>/FixPt Unit Delay1' */
1563 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1564
1565 /* Update for UnitDelay: '<S111>/Unit_Delay' */
1566 localDW->Unit_Delay_DSTATE = localB->If_Then_Else.Switch;
1567 }
1568
1569 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
1570}
1571
1572/* Output and update for atomic system: '<S98>/If_Then_Else' */
1573void L4_MABX_If_Then_Else_l(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1574 rtu_Else, B_If_Then_Else_L4_MABX_m_T *localB)
1575{
1576 /* Switch: '<S176>/Switch' */
1577 if (rtu_If) {
1578 localB->Switch = rtu_Then;
1579 } else {
1580 localB->Switch = rtu_Else;
1581 }
1582
1583 /* End of Switch: '<S176>/Switch' */
1584}
1585
1586/*
1587 * Output and update for atomic system:
1588 * '<S177>/If_Then_Else'
1589 * '<S177>/If_Then_Else1'
1590 * '<S178>/If_Then_Else'
1591 * '<S178>/If_Then_Else1'
1592 * '<S274>/If_Then_Else'
1593 * '<S275>/If_Then_Else'
1594 * '<S275>/If_Then_Else1'
1595 * '<S354>/If_Then_Else'
1596 * '<S351>/If_Then_Else'
1597 * '<S360>/If_Then_Else'
1598 * ...
1599 */
1600void L4_MABX_If_Then_Else_g(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1601 B_If_Then_Else_L4_MABX_k_T *localB)
1602{
1603 /* Switch: '<S179>/Switch' */
1604 if (rtu_If) {
1605 localB->Switch = rtu_Then;
1606 } else {
1607 localB->Switch = rtu_Else;
1608 }
1609
1610 /* End of Switch: '<S179>/Switch' */
1611}
1612
1613/* Output and update for atomic system: '<S304>/If_Then_Else' */
1614void L4_MABX_If_Then_Else_c(real_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1615 B_If_Then_Else_L4_MABX_mf_T *localB)
1616{
1617 /* Switch: '<S314>/Switch' */
1618 if (rtu_If != 0.0) {
1619 localB->Switch = rtu_Then;
1620 } else {
1621 localB->Switch = rtu_Else;
1622 }
1623
1624 /* End of Switch: '<S314>/Switch' */
1625}
1626
1627/* Output and update for atomic system: '<S344>/If_Then_Else' */
1628void L4_MABX_If_Then_Else_m(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Then_l,
1629 real_T rtu_Then_f, real_T rtu_Else, real_T rtu_Else_i, real_T rtu_Else_k,
1630 B_If_Then_Else_L4_MABX_h_T *localB)
1631{
1632 /* Switch: '<S346>/Switch' */
1633 if (rtu_If) {
1634 localB->Vehicle_speed_target = rtu_Then;
1635 localB->Vehicle_speed = rtu_Then_l;
1636 localB->Distance_m = rtu_Then_f;
1637 } else {
1638 localB->Vehicle_speed_target = rtu_Else;
1639 localB->Vehicle_speed = rtu_Else_i;
1640 localB->Distance_m = rtu_Else_k;
1641 }
1642
1643 /* End of Switch: '<S346>/Switch' */
1644}
1645
1646/* System initialize for function-call system: '<S393>/Background_Task' */
1647void L4_MAB_Background_Task_Init(void)
1648{
1649 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1650 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1651 {
1652 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1653 sfcnInitializeConditions(rts);
1654 if (ssGetErrorStatus(rts) != (NULL))
1655 return;
1656 }
1657}
1658
1659/* System reset for function-call system: '<S393>/Background_Task' */
1660void L4_MA_Background_Task_Reset(void)
1661{
1662 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1663 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1664 {
1665 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1666 sfcnInitializeConditions(rts);
1667 if (ssGetErrorStatus(rts) != (NULL))
1668 return;
1669 }
1670}
1671
1672/* Start for function-call system: '<S393>/Background_Task' */
1673void L4_MA_Background_Task_Start(void)
1674{
1675 /* Start for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1676 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1677 {
1678 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1679 sfcnStart(rts);
1680 if (ssGetErrorStatus(rts) != (NULL))
1681 return;
1682 }
1683}
1684
1685/* Output and update for function-call system: '<S393>/Background_Task' */
1686void L4_MABX_Background_Task(void)
1687{
1688 /* S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1689
1690 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1691 {
1692 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1693 sfcnOutputs(rts,9);
1694 }
1695}
1696
1697/* Termination for function-call system: '<S393>/Background_Task' */
1698void L4_MAB_Background_Task_Term(void)
1699{
1700 /* Terminate for S-Function (dsa_tcpip_bkg_sfcn): '<S404>/dsa_tcpip_bkg_sfcn' */
1701 /* Level2 S-Function Block: '<S404>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1702 {
1703 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1704 sfcnTerminate(rts);
1705 }
1706}
1707
1708/* System initialize for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1709void L4__IRQ_Level_2_SW_INT_Init(void)
1710{
1711 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1712 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1713 {
1714 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1715 sfcnInitializeConditions(rts);
1716 if (ssGetErrorStatus(rts) != (NULL))
1717 return;
1718 }
1719}
1720
1721/* System reset for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1722void L4_IRQ_Level_2_SW_INT_Reset(void)
1723{
1724 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1725 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1726 {
1727 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1728 sfcnInitializeConditions(rts);
1729 if (ssGetErrorStatus(rts) != (NULL))
1730 return;
1731 }
1732}
1733
1734/* Start for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1735void L4_IRQ_Level_2_SW_INT_Start(void)
1736{
1737 /* Start for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1738 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1739 {
1740 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1741 sfcnStart(rts);
1742 if (ssGetErrorStatus(rts) != (NULL))
1743 return;
1744 }
1745}
1746
1747/* Output and update for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1748void L4_MABX_IRQ_Level_2_SW_INT(void)
1749{
1750 /* S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1751
1752 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1753 {
1754 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1755 sfcnOutputs(rts,10);
1756 }
1757}
1758
1759/* Termination for function-call system: '<S393>/IRQ_Level_2_SW_INT' */
1760void L4__IRQ_Level_2_SW_INT_Term(void)
1761{
1762 /* Terminate for S-Function (dsa_tcpip_irq_l2_sfcn): '<S405>/dsa_tcpip_irq_l2_sfcn' */
1763 /* Level2 S-Function Block: '<S405>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1764 {
1765 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1766 sfcnTerminate(rts);
1767 }
1768}
1769
1770/* System initialize for function-call system: '<S406>/Tcp Input Processing' */
1771void L4__TcpInputProcessing_Init(void)
1772{
1773 /* SystemInitialize for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1774 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1775 */
1776 L4__IRQ_Level_2_SW_INT_Init();
1777
1778 /* End of SystemInitialize for S-Function (rti_commonblock): '<S408>/S-Function1' */
1779}
1780
1781/* System reset for function-call system: '<S406>/Tcp Input Processing' */
1782void L4_TcpInputProcessing_Reset(void)
1783{
1784 /* SystemReset for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1785 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1786 */
1787 L4_IRQ_Level_2_SW_INT_Reset();
1788
1789 /* End of SystemReset for S-Function (rti_commonblock): '<S408>/S-Function1' */
1790}
1791
1792/* Start for function-call system: '<S406>/Tcp Input Processing' */
1793void L4_TcpInputProcessing_Start(void)
1794{
1795 /* Start for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1796 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1797 */
1798 L4_IRQ_Level_2_SW_INT_Start();
1799
1800 /* End of Start for S-Function (rti_commonblock): '<S408>/S-Function1' */
1801}
1802
1803/* Output and update for function-call system: '<S406>/Tcp Input Processing' */
1804void L4_MABX_TcpInputProcessing(void)
1805{
1806 /* S-Function (rti_commonblock): '<S408>/S-Function1' */
1807
1808 /* This comment workarounds a code generation problem */
1809
1810 /* dSPACE Software Interrupt Block: <S406>/Tcp Input Processing */
1811 rtk_schedule_task(S_SOFTTASK,0);
1812
1813 /* End of Outputs for S-Function (rti_commonblock): '<S408>/S-Function1' */
1814}
1815
1816/*
1817 * Forced non-inlined (FNI) function call stub
1818 * for '<S406>/Tcp Input Processing'
1819 */
1820boolean_T L4_MABX_TcpInputProcessingFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1821 int_T controlPortIdx, int_T tid)
1822{
1823 L4_MABX_TcpInputProcessing();
1824 UNUSED_PARAMETER(L4_MABX_M);
1825 UNUSED_PARAMETER(controlPortIdx);
1826 UNUSED_PARAMETER(tid);
1827 return (1);
1828}
1829
1830/*
1831 * Forced non-inlined (FNI) function call stub
1832 * for '<S406>/Tcp Input Processing'
1833 */
1834boolean_T L4_TcpInputProcessing_ResetFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1835 int_T controlPortIdx, int_T tid)
1836{
1837 UNUSED_PARAMETER(L4_MABX_M);
1838 UNUSED_PARAMETER(controlPortIdx);
1839 UNUSED_PARAMETER(tid);
1840 return (1);
1841}
1842
1843/* Termination for function-call system: '<S406>/Tcp Input Processing' */
1844void L4__TcpInputProcessing_Term(void)
1845{
1846 /* Terminate for S-Function (rti_commonblock): '<S408>/S-Function1' incorporates:
1847 * SubSystem: '<S393>/IRQ_Level_2_SW_INT'
1848 */
1849 L4__IRQ_Level_2_SW_INT_Term();
1850
1851 /* End of Terminate for S-Function (rti_commonblock): '<S408>/S-Function1' */
1852}
1853
1854/* System initialize for function-call system: '<S393>/Interrupt_Task' */
1855void L4_MABX_Interrupt_Task_Init(void)
1856{
1857 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1858
1859 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1860 {
1861 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1862 sfcnInitializeConditions(rts);
1863 if (ssGetErrorStatus(rts) != (NULL))
1864 return;
1865 }
1866
1867 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1868
1869 /* SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1870 * SubSystem: '<S406>/Tcp Input Processing'
1871 */
1872 L4__TcpInputProcessing_Init();
1873
1874 /* End of SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1875}
1876
1877/* System reset for function-call system: '<S393>/Interrupt_Task' */
1878void L4_MAB_Interrupt_Task_Reset(void)
1879{
1880 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1881
1882 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1883 {
1884 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1885 sfcnInitializeConditions(rts);
1886 if (ssGetErrorStatus(rts) != (NULL))
1887 return;
1888 }
1889
1890 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1891
1892 /* SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1893 * SubSystem: '<S406>/Tcp Input Processing'
1894 */
1895 L4_TcpInputProcessing_Reset();
1896
1897 /* End of SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1898}
1899
1900/* Start for function-call system: '<S393>/Interrupt_Task' */
1901void L4_MAB_Interrupt_Task_Start(void)
1902{
1903 /* Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1904 * SubSystem: '<S406>/Tcp Input Processing'
1905 */
1906 L4_TcpInputProcessing_Start();
1907
1908 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1909 {
1910 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1911 sfcnStart(rts);
1912 if (ssGetErrorStatus(rts) != (NULL))
1913 return;
1914 }
1915
1916 /* End of Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1917}
1918
1919/* Output and update for function-call system: '<S393>/Interrupt_Task' */
1920void L4_MABX_Interrupt_Task(void)
1921{
1922 /* S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1923
1924 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1925 {
1926 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1927 sfcnOutputs(rts,11);
1928 }
1929
1930 /* End of Outputs for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1931}
1932
1933/* Termination for function-call system: '<S393>/Interrupt_Task' */
1934void L4_MABX_Interrupt_Task_Term(void)
1935{
1936 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1937
1938 /* Level2 S-Function Block: '<S406>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1939 {
1940 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1941 sfcnTerminate(rts);
1942 }
1943
1944 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1945
1946 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' incorporates:
1947 * SubSystem: '<S406>/Tcp Input Processing'
1948 */
1949 L4__TcpInputProcessing_Term();
1950
1951 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S406>/dsa_tcpip_irq_l1_sfcn' */
1952}
1953
1954/* Output and update for atomic system: '<S735>/If_Then_Else' */
1955void L4_MABX_If_Then_Else_o(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else)
1956{
1957 /* Switch: '<S740>/Switch' */
1958 if (rtu_If) {
1959 Pedal_pwm_position = rtu_Then;
1960 } else {
1961 Pedal_pwm_position = rtu_Else;
1962 }
1963
1964 /* End of Switch: '<S740>/Switch' */
1965}
1966
1967/* System initialize for function-call system: '<S412>/IncrementTimer' */
1968void L4_MABX_IncrementTimer_Init(void)
1969{
1970 /* InitializeConditions for UnitDelay: '<S822>/Unit_Delay' */
1971 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_P.Unit_Delay_InitialCondition_je;
1972
1973 /* SystemInitialize for Outport: '<S822>/Out1' */
1974 L4_MABX_B.Add = L4_MABX_P.Out1_Y0_c;
1975}
1976
1977/* System reset for function-call system: '<S412>/IncrementTimer' */
1978void L4_MAB_IncrementTimer_Reset(void)
1979{
1980 /* InitializeConditions for UnitDelay: '<S822>/Unit_Delay' */
1981 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_P.Unit_Delay_InitialCondition_je;
1982}
1983
1984/* Output and update for function-call system: '<S412>/IncrementTimer' */
1985void L4_MABX_IncrementTimer(void)
1986{
1987 /* UnitDelay: '<S822>/Unit_Delay' */
1988 L4_MABX_B.Unit_Delay_k = L4_MABX_DW.Unit_Delay_DSTATE_f;
1989
1990 /* Sum: '<S822>/Add' incorporates:
1991 * Constant: '<S822>/Constant1'
1992 */
1993 L4_MABX_B.Add = L4_MABX_P.Constant1_Value_k + L4_MABX_B.Unit_Delay_k;
1994
1995 /* Update for UnitDelay: '<S822>/Unit_Delay' */
1996 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_B.Add;
1997}
1998
1999/*
2000 * Output and update for enable system:
2001 * '<S952>/ALL_CTRL_DISABLED'
2002 * '<S952>/DEFAULT_TRQ_CTRL_MODE'
2003 * '<S952>/EXT_TRQ_CTRL_MODE_A'
2004 * '<S952>/EXT_TRQ_CTRL_MODE_B'
2005 * '<S952>/EXT_TRQ_CTRL_MODE_C'
2006 */
2007void L4_MABX_ALL_CTRL_DISABLED(boolean_T rtu_Enable, int32_T *rty_Out1,
2008 P_ALL_CTRL_DISABLED_L4_MABX_T *localP)
2009{
2010 /* Outputs for Enabled SubSystem: '<S952>/ALL_CTRL_DISABLED' incorporates:
2011 * EnablePort: '<S967>/Enable'
2012 */
2013 if (rtu_Enable) {
2014 /* SignalConversion: '<S967>/OutportBufferForOut1' incorporates:
2015 * Constant: '<S967>/Constant'
2016 */
2017 *rty_Out1 = localP->Constant_Value;
2018 }
2019
2020 /* End of Outputs for SubSystem: '<S952>/ALL_CTRL_DISABLED' */
2021}
2022
2023/* Output and update for atomic system: '<S990>/If_Then_Else' */
2024void L4_MABX_If_Then_Else_d(boolean_T rtu_If, real_T rtu_Then,
2025 ENUM_XBR_EBI_MODE_T rtu_Then_h, ENUM_XBR_PRIORITY_T rtu_Then_f,
2026 ENUM_XBR_CONTROL_MODE_T rtu_Then_p, ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Then_m,
2027 real_T rtu_Then_j, real_T rtu_Then_d, real_T rtu_Else, ENUM_XBR_EBI_MODE_T
2028 rtu_Else_h, ENUM_XBR_PRIORITY_T rtu_Else_e, ENUM_XBR_CONTROL_MODE_T rtu_Else_d,
2029 ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Else_i, real_T rtu_Else_l, real_T
2030 rtu_Else_hh, B_If_Then_Else_L4_MABX_fr_T *localB)
2031{
2032 /* Switch: '<S1014>/Switch' */
2033 if (rtu_If) {
2034 localB->XBRExternalAccelDemand = rtu_Then;
2035 localB->XBREnduranceBrakeIntegrationMod = rtu_Then_h;
2036 localB->XBRPriority = rtu_Then_f;
2037 localB->XBRControlMode = rtu_Then_p;
2038 localB->XBRPassThroughActive = rtu_Then_m;
2039 localB->XBRUrgency = rtu_Then_j;
2040 localB->XBRPassThroughEnabled = rtu_Then_d;
2041 } else {
2042 localB->XBRExternalAccelDemand = rtu_Else;
2043 localB->XBREnduranceBrakeIntegrationMod = rtu_Else_h;
2044 localB->XBRPriority = rtu_Else_e;
2045 localB->XBRControlMode = rtu_Else_d;
2046 localB->XBRPassThroughActive = rtu_Else_i;
2047 localB->XBRUrgency = rtu_Else_l;
2048 localB->XBRPassThroughEnabled = rtu_Else_hh;
2049 }
2050
2051 /* End of Switch: '<S1014>/Switch' */
2052}
2053
2054static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input)
2055{
2056 int32_T y;
2057
2058 /* Initialize output value to default value for ENUM_XPR_CONTROL_MODE_T (NO_BRAKE_DEMAND) */
2059 y = 0;
2060 if (((input >= 0) && (input <= 3)) || ((input >= 13) && (input <= 15))) {
2061 /* Set output value to input value if it is a member of ENUM_XPR_CONTROL_MODE_T */
2062 y = input;
2063 }
2064
2065 return y;
2066}
2067
2068static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input)
2069{
2070 int32_T y;
2071
2072 /* Initialize output value to default value for ENUM_XPR_ERROR_STATE_T (XPR_OK) */
2073 y = 0;
2074 if ((input >= 0) && (input <= 3)) {
2075 /* Set output value to input value if it is a member of ENUM_XPR_ERROR_STATE_T */
2076 y = input;
2077 }
2078
2079 return y;
2080}
2081
2082/* Function for Chart: '<S205>/Relay_control_state_machine' */
2083static void L4_MABX_enter_atomic_INITIAL(void)
2084{
2085 /* Entry 'INITIAL': '<S212>:12' */
2086 L4_MABX_B.F_Ignition_relay_command_i = false;
2087 L4_MABX_B.F_Inverter_relay_command_p = false;
2088 L4_MABX_B.F_MABX_relay_command_n = false;
2089 L4_MABX_B.F_Sensor_relay_command_k = false;
2090 L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV =
2091 L4_MABX_B.TmpSignalConversionAtSFunctionI[0];
2092 L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP =
2093 L4_MABX_B.TmpSignalConversionAtSFunctionI[1];
2094 L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV =
2095 L4_MABX_B.TmpSignalConversionAtSFunctionI[2];
2096 L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV =
2097 L4_MABX_B.TmpSignalConversionAtSFunctionI[3];
2098 L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV =
2099 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0];
2100 L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A =
2101 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1];
2102 L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV =
2103 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2];
2104 L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV =
2105 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3];
2106}
2107
2108real_T rt_atan2d_snf(real_T u0, real_T u1)
2109{
2110 real_T y;
2111 int32_T tmp;
2112 int32_T tmp_0;
2113 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2114 y = (rtNaN);
2115 } else if (rtIsInf(u0) && rtIsInf(u1)) {
2116 if (u1 > 0.0) {
2117 tmp = 1;
2118 } else {
2119 tmp = -1;
2120 }
2121
2122 if (u0 > 0.0) {
2123 tmp_0 = 1;
2124 } else {
2125 tmp_0 = -1;
2126 }
2127
2128 y = atan2(tmp_0, tmp);
2129 } else if (u1 == 0.0) {
2130 if (u0 > 0.0) {
2131 y = RT_PI / 2.0;
2132 } else if (u0 < 0.0) {
2133 y = -(RT_PI / 2.0);
2134 } else {
2135 y = 0.0;
2136 }
2137 } else {
2138 y = atan2(u0, u1);
2139 }
2140
2141 return y;
2142}
2143
2144real_T rt_powd_snf(real_T u0, real_T u1)
2145{
2146 real_T y;
2147 real_T tmp;
2148 real_T tmp_0;
2149 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2150 y = (rtNaN);
2151 } else {
2152 tmp = fabs(u0);
2153 tmp_0 = fabs(u1);
2154 if (rtIsInf(u1)) {
2155 if (tmp == 1.0) {
2156 y = 1.0;
2157 } else if (tmp > 1.0) {
2158 if (u1 > 0.0) {
2159 y = (rtInf);
2160 } else {
2161 y = 0.0;
2162 }
2163 } else if (u1 > 0.0) {
2164 y = 0.0;
2165 } else {
2166 y = (rtInf);
2167 }
2168 } else if (tmp_0 == 0.0) {
2169 y = 1.0;
2170 } else if (tmp_0 == 1.0) {
2171 if (u1 > 0.0) {
2172 y = u0;
2173 } else {
2174 y = 1.0 / u0;
2175 }
2176 } else if (u1 == 2.0) {
2177 y = u0 * u0;
2178 } else if ((u1 == 0.5) && (u0 >= 0.0)) {
2179 y = sqrt(u0);
2180 } else if ((u0 < 0.0) && (u1 > floor(u1))) {
2181 y = (rtNaN);
2182 } else {
2183 y = pow(u0, u1);
2184 }
2185 }
2186
2187 return y;
2188}
2189
2190/* Function for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
2191static void L4_MABX_Calculate_abc(void)
2192{
2193 /* MATLAB Function 'Calculate_abc': '<S353>:158' */
2194 /* Graphical Function 'Calculate_abc': '<S353>:158' */
2195 /* '<S353>:160:1' */
2196 L4_MABX_DW.a = L4_MABX_DW.Jerk56 - L4_MABX_DW.Jerk12;
2197
2198 /* '<S353>:160:1' */
2199 L4_MABX_DW.b = ((L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.Jerk12 -
2200 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2201 L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 * L4_MABX_DW.TimeFinal) *
2202 2.0;
2203
2204 /* '<S353>:160:3' */
2205 L4_MABX_DW.c = (2.0 * L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 *
2206 (L4_MABX_DW.VelocityFinalLimited -
2207 L4_MABX_DW.VelocityInitialLimited) +
2208 L4_MABX_DW.AccelerationInitialLimited *
2209 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2210 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.AccelerationFinalLimited *
2211 L4_MABX_DW.Jerk12;
2212}
2213
2214/* Function for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
2215static void L4_MABX_CalculateAlternate_abc(void)
2216{
2217 /* MATLAB Function 'CalculateAlternate_abc': '<S353>:286' */
2218 /* Graphical Function 'CalculateAlternate_abc': '<S353>:286' */
2219 /* '<S353>:285:1' */
2220 L4_MABX_DW.a = 1.0;
2221
2222 /* '<S353>:285:1' */
2223 L4_MABX_DW.b = ((L4_MABX_DW.TimeFinal - 0.005) * L4_MABX_DW.Jerk56 -
2224 L4_MABX_DW.AccelerationFinalLimited) * 2.0;
2225
2226 /* '<S353>:285:3' */
2227 L4_MABX_DW.c = 2.0 * L4_MABX_DW.Jerk56 * (L4_MABX_DW.VelocityInitialLimited -
2228 L4_MABX_DW.VelocityFinalLimited) + L4_MABX_DW.AccelerationFinalLimited *
2229 L4_MABX_DW.AccelerationFinalLimited;
2230}
2231
2232/* Function for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
2233static void L4_MABX_CalculateAcceleration34(void)
2234{
2235 real_T u;
2236 real_T u0;
2237 real_T u1;
2238
2239 /* MATLAB Function 'CalculateAcceleration34': '<S353>:167' */
2240 /* Graphical Function 'CalculateAcceleration34': '<S353>:167' */
2241 /* '<S353>:186:1' */
2242 /* '<S353>:186:5' */
2243 /* '<S353>:186:8' */
2244 u = L4_MABX_DW.Jerk12;
2245 if (u < 0.0) {
2246 u = -1.0;
2247 } else if (u > 0.0) {
2248 u = 1.0;
2249 } else if (u == 0.0) {
2250 u = 0.0;
2251 } else {
2252 u = (rtNaN);
2253 }
2254
2255 u0 = fabs(L4_MABX_DW.Jerk12);
2256 u1 = fabs(((((L4_MABX_DW.AccelerationInitialLimited *
2257 L4_MABX_DW.AccelerationFinalLimited -
2258 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56 *
2259 L4_MABX_DW.TimeFinal) + (L4_MABX_DW.VelocityFinalLimited -
2260 L4_MABX_DW.VelocityInitialLimited) * L4_MABX_DW.Jerk56) * 2.0 -
2261 L4_MABX_DW.AccelerationInitialLimited *
2262 L4_MABX_DW.AccelerationInitialLimited) -
2263 L4_MABX_DW.AccelerationFinalLimited *
2264 L4_MABX_DW.AccelerationFinalLimited) /
2265 (((L4_MABX_DW.VelocityFinalLimited -
2266 L4_MABX_DW.VelocityInitialLimited) -
2267 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) * 2.0
2268 + L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal * L4_MABX_DW.Jerk56))
2269 + 0.001;
2270 if ((u0 > u1) || rtIsNaN(u1)) {
2271 u1 = u0;
2272 }
2273
2274 L4_MABX_DW.Jerk12 = u * u1;
2275
2276 /* '<S353>:186:11' */
2277 u1 = L4_MABX_DW.Jerk12;
2278 if ((10.0 < u1) || rtIsNaN(u1)) {
2279 u1 = 10.0;
2280 }
2281
2282 if ((-10.0 > u1) || rtIsNaN(u1)) {
2283 L4_MABX_DW.Jerk12 = -10.0;
2284 } else {
2285 L4_MABX_DW.Jerk12 = u1;
2286 }
2287
2288 /* '<S353>:186:11' */
2289 L4_MABX_Calculate_abc();
2290
2291 /* '<S353>:187:1' */
2292 if (fabs(L4_MABX_DW.a) < 0.01) {
2293 /* '<S353>:188:1' */
2294 L4_MABX_DW.Jerk12 = L4_MABX_DW.Jerk56;
2295
2296 /* '<S353>:188:1' */
2297 L4_MABX_Calculate_abc();
2298
2299 /* '<S353>:188:1' */
2300 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.c / L4_MABX_DW.b;
2301
2302 /* '<S353>:188:2' */
2303 L4_MABX_DW.AlternateMethod = false;
2304 } else {
2305 /* '<S353>:224:1' */
2306 if (L4_MABX_DW.b * L4_MABX_DW.b <= 4.0 * L4_MABX_DW.a * L4_MABX_DW.c) {
2307 /* '<S353>:292:1' */
2308 L4_MABX_CalculateAlternate_abc();
2309
2310 /* '<S353>:292:1' */
2311 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.b / (2.0 * L4_MABX_DW.a);
2312
2313 /* '<S353>:292:2' */
2314 L4_MABX_DW.AlternateMethod = true;
2315 } else {
2316 /* '<S353>:294:1' */
2317 L4_MABX_DW.Acceleration34 = (sqrt(L4_MABX_DW.b * L4_MABX_DW.b - 4.0 *
2318 L4_MABX_DW.a * L4_MABX_DW.c) + -L4_MABX_DW.b) / (2.0 * L4_MABX_DW.a);
2319
2320 /* '<S353>:294:2' */
2321 L4_MABX_DW.AlternateMethod = false;
2322 }
2323 }
2324}
2325
2326static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input)
2327{
2328 int32_T y;
2329
2330 /* Initialize output value to default value for ENUM_CAN_STATUS_DIAG_T (ACTIVE) */
2331 y = 0;
2332 if ((input >= 0) && (input <= 2)) {
2333 /* Set output value to input value if it is a member of ENUM_CAN_STATUS_DIAG_T */
2334 y = input;
2335 }
2336
2337 return y;
2338}
2339
2340/* Model output function for TID0 */
2341void L4_MABX_output0(void) /* Sample time: [0.01s, 0.0s] */
2342{
2343 int_T tid = 0;
2344 uint8_T starting_index;
2345 real_T AccelerationAverage;
2346 real_T DeltaTimeFinal;
2347 uint8_T j;
2348 real_T PositionFinalLimited;
2349 real_T Time56;
2350 real_T DeltaTime;
2351 uint32_T tmp;
2352 boolean_T zcEvent;
2353 int32_T i;
2354 uint32_T q0;
2355 uint16_T tmp_0;
2356 int8_T tmp_1;
2357
2358 /* Update the flag to indicate when data transfers from
2359 * Sample time: [0.01s, 0.0s] to Sample time: [0.02s, 0.0s] */
2360 L4_MABX_M->Timing.perTaskSampleHits[1] =
2361 (L4_MABX_M->Timing.RateInteraction.TID0_1 == 0);
2362 (L4_MABX_M->Timing.RateInteraction.TID0_1)++;
2363 if ((L4_MABX_M->Timing.RateInteraction.TID0_1) > 1) {
2364 L4_MABX_M->Timing.RateInteraction.TID0_1 = 0;
2365 }
2366
2367 /* Update the flag to indicate when data transfers from
2368 * Sample time: [0.01s, 0.0s] to Sample time: [0.05s, 0.0s] */
2369 L4_MABX_M->Timing.perTaskSampleHits[2] =
2370 (L4_MABX_M->Timing.RateInteraction.TID0_2 == 0);
2371 (L4_MABX_M->Timing.RateInteraction.TID0_2)++;
2372 if ((L4_MABX_M->Timing.RateInteraction.TID0_2) > 4) {
2373 L4_MABX_M->Timing.RateInteraction.TID0_2 = 0;
2374 }
2375
2376 /* Update the flag to indicate when data transfers from
2377 * Sample time: [0.01s, 0.0s] to Sample time: [0.1s, 0.0s] */
2378 L4_MABX_M->Timing.perTaskSampleHits[3] =
2379 (L4_MABX_M->Timing.RateInteraction.TID0_3 == 0);
2380 (L4_MABX_M->Timing.RateInteraction.TID0_3)++;
2381 if ((L4_MABX_M->Timing.RateInteraction.TID0_3) > 9) {
2382 L4_MABX_M->Timing.RateInteraction.TID0_3 = 0;
2383 }
2384
2385 /* Update the flag to indicate when data transfers from
2386 * Sample time: [0.01s, 0.0s] to Sample time: [1.0s, 0.0s] */
2387 L4_MABX_M->Timing.perTaskSampleHits[6] =
2388 (L4_MABX_M->Timing.RateInteraction.TID0_6 == 0);
2389 (L4_MABX_M->Timing.RateInteraction.TID0_6)++;
2390 if ((L4_MABX_M->Timing.RateInteraction.TID0_6) > 99) {
2391 L4_MABX_M->Timing.RateInteraction.TID0_6 = 0;
2392 }
2393
2394 /* Update the flag to indicate when data transfers from
2395 * Sample time: [0.01s, 0.0s] to Sample time: [5.0s, 0.0s] */
2396 L4_MABX_M->Timing.perTaskSampleHits[7] =
2397 (L4_MABX_M->Timing.RateInteraction.TID0_7 == 0);
2398 (L4_MABX_M->Timing.RateInteraction.TID0_7)++;
2399 if ((L4_MABX_M->Timing.RateInteraction.TID0_7) > 499) {
2400 L4_MABX_M->Timing.RateInteraction.TID0_7 = 0;
2401 }
2402
2403 /* Outputs for Enabled SubSystem: '<S492>/AIR1' incorporates:
2404 * EnablePort: '<S493>/Enable'
2405 */
2406 /* Constant: '<S420>/Constant' */
2407 if (L4_MABX_P.Constant_Value_nb) {
2408 /* S-Function (rti_commonblock): '<S493>/S-Function1' */
2409 /* This comment workarounds a code generation problem */
2410
2411 /* dSPACE RTICAN RX Message Block: "AIR1" Id:419343921 */
2412 {
2413 UInt32 *CAN_Msg;
2414 static dsfloat time_old = 0.0;
2415
2416 /* Read status and timestamp info (previous message) */
2417 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp !=
2418 time_old) {
2419 /* ... save timestamp info for the calculation of the RX status
2420 during the consecutive sample hit*/
2421 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].
2422 timestamp;
2423
2424 /* ... set the processed flag to one */
2425 L4_MABX_B.SFunction1_o9_g = 1.0;
2426 L4_MABX_B.SFunction1_o10_fpb = (real_T)
2427 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp;
2428 L4_MABX_B.SFunction1_o11_a = (real_T)
2429 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].deltatime;
2430 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].data;
2431
2432 /* Decode CAN message */
2433 {
2434 {
2435 rtican_Signal_t CAN_Sgn;
2436
2437 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
2438 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2439 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2440 L4_MABX_B.SFunction1_o1_k5 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2441
2442 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
2443 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2444 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2445 L4_MABX_B.SFunction1_o2_if = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2446
2447 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
2448 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
2449 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2450 L4_MABX_B.SFunction1_o3_kl = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2451
2452 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
2453 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2454 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2455 L4_MABX_B.SFunction1_o4_dd = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2456
2457 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
2458 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
2459 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2460 L4_MABX_B.SFunction1_o5_aw = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2461
2462 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
2463 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2464 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2465 L4_MABX_B.SFunction1_o6_pp = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2466
2467 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
2468 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2469 CAN_Sgn.UnsignedSgn &= 0x00000003;
2470 L4_MABX_B.SFunction1_o7_e = ((real_T) CAN_Sgn.UnsignedSgn);
2471
2472 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
2473 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
2474 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2475 L4_MABX_B.SFunction1_o8_kd = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2476 }
2477 }
2478 } else {
2479 /* set RX status to 0 because no new message has arrived */
2480 L4_MABX_B.SFunction1_o9_g = 0.0;
2481 }
2482 }
2483 }
2484
2485 /* End of Constant: '<S420>/Constant' */
2486 /* End of Outputs for SubSystem: '<S492>/AIR1' */
2487
2488 /* Outputs for Enabled SubSystem: '<S494>/AMB' incorporates:
2489 * EnablePort: '<S495>/Enable'
2490 */
2491 /* Constant: '<S421>/Constant' */
2492 if (L4_MABX_P.Constant_Value_m5) {
2493 /* S-Function (rti_commonblock): '<S495>/S-Function1' */
2494 /* This comment workarounds a code generation problem */
2495
2496 /* dSPACE RTICAN RX Message Block: "AMB" Id:419362048 */
2497 {
2498 UInt32 *CAN_Msg;
2499 static dsfloat time_old = 0.0;
2500
2501 /* Read status and timestamp info (previous message) */
2502 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp !=
2503 time_old) {
2504 /* ... save timestamp info for the calculation of the RX status
2505 during the consecutive sample hit*/
2506 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].
2507 timestamp;
2508
2509 /* ... set the processed flag to one */
2510 L4_MABX_B.SFunction1_o6_pf = 1.0;
2511 L4_MABX_B.SFunction1_o7_nx = (real_T)
2512 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp;
2513 L4_MABX_B.SFunction1_o8_ko = (real_T)
2514 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].deltatime;
2515 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].data;
2516
2517 /* Decode CAN message */
2518 {
2519 {
2520 rtican_Signal_t CAN_Sgn;
2521
2522 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
2523 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2524 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2525 L4_MABX_B.SFunction1_o1_e3 = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2526
2527 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
2528 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2529 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
2530 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2531 L4_MABX_B.SFunction1_o2_os = -273 + ( 0.03125 * ( ((real_T)
2532 CAN_Sgn.UnsignedSgn) ) );
2533
2534 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
2535 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2536 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
2537 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2538 L4_MABX_B.SFunction1_o3_f4 = -273 + ( 0.03125 * ( ((real_T)
2539 CAN_Sgn.UnsignedSgn) ) );
2540
2541 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
2542 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2543 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2544 L4_MABX_B.SFunction1_o4_f0 = -40 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
2545
2546 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
2547 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2548 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
2549 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2550 L4_MABX_B.SFunction1_o5_bb = -273 + ( 0.03125 * ( ((real_T)
2551 CAN_Sgn.UnsignedSgn) ) );
2552 }
2553 }
2554 } else {
2555 /* set RX status to 0 because no new message has arrived */
2556 L4_MABX_B.SFunction1_o6_pf = 0.0;
2557 }
2558 }
2559 }
2560
2561 /* End of Constant: '<S421>/Constant' */
2562 /* End of Outputs for SubSystem: '<S494>/AMB' */
2563
2564 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_1000ms' */
2565
2566 /* RateTransition: '<S844>/TmpRTBAtAIR1Inport1' */
2567 if (L4_MABX_M->Timing.RateInteraction.TID0_6 == 1) {
2568 L4_MABX_B.PneumaticSupplyPress = L4_MABX_B.SFunction1_o1_k5;
2569 L4_MABX_B.ParkingAnd_orTrailerAirPress = L4_MABX_B.SFunction1_o2_if;
2570 L4_MABX_B.ServiceBrakeCircuit1AirPress = L4_MABX_B.SFunction1_o3_kl;
2571 L4_MABX_B.ServiceBrakeCircuit2AirPress = L4_MABX_B.SFunction1_o4_dd;
2572 L4_MABX_B.AuxEquipmentSupplyPress = L4_MABX_B.SFunction1_o5_aw;
2573 L4_MABX_B.AirSuspensionSupplyPress = L4_MABX_B.SFunction1_o6_pp;
2574 L4_MABX_B.AirCompressorStatus = L4_MABX_B.SFunction1_o7_e;
2575 L4_MABX_B.PowertrainCircuitAirSupplyPress = L4_MABX_B.SFunction1_o8_kd;
2576 L4_MABX_B.BarometricPress_h = L4_MABX_B.SFunction1_o1_e3;
2577 L4_MABX_B.CabInteriorTemp = L4_MABX_B.SFunction1_o2_os;
2578 L4_MABX_B.AmbientAirTemp_i = L4_MABX_B.SFunction1_o3_f4;
2579 L4_MABX_B.EngAirIntakeTemp = L4_MABX_B.SFunction1_o4_f0;
2580 L4_MABX_B.RoadSurfaceTemp = L4_MABX_B.SFunction1_o5_bb;
2581 }
2582
2583 /* End of Outputs for SubSystem: '<S824>/CAN_TX_1000ms' */
2584
2585 /* S-Function (rti_commonblock): '<S729>/S-Function1' */
2586 /* This comment workarounds a code generation problem */
2587
2588 /* DataTypeConversion: '<S411>/EStopSwActive' */
2589 L4_MABX_B.EStopSwActive = L4_MABX_B.SFunction1_m;
2590
2591 /* Logic: '<S411>/Logical Operator1' */
2592 EStop = !L4_MABX_B.EStopSwActive;
2593
2594 /* S-Function (rti_commonblock): '<S728>/S-Function1' */
2595 /* This comment workarounds a code generation problem */
2596
2597 /* S-Function (sfix_bitop): '<S818>/Operator' */
2598 L4_MABX_B.Operator_jm = (L4_MABX_B.SFunction1_i &&
2599 (L4_MABX_P.Operator_BitMask_f != 0));
2600
2601 /* DataTypeConversion: '<S818>/DataType' */
2602 L4_MABX_B.DataType_ml = L4_MABX_B.Operator_jm;
2603
2604 /* Logic: '<S736>/Logical Operator' */
2605 L4_MABX_B.LogicalOperator = !L4_MABX_B.DataType_ml;
2606
2607 /* S-Function (rti_commonblock): '<S731>/S-Function1' */
2608 /* This comment workarounds a code generation problem */
2609
2610 /* S-Function (sfix_bitop): '<S819>/Operator' */
2611 L4_MABX_B.Operator_il = (L4_MABX_B.SFunction1_ix &&
2612 (L4_MABX_P.Operator_BitMask_m5 != 0));
2613
2614 /* DataTypeConversion: '<S819>/DataType' */
2615 L4_MABX_B.DataType_ooa = L4_MABX_B.Operator_il;
2616
2617 /* Logic: '<S736>/AND2' */
2618 L4_MABX_B.AND2 = (L4_MABX_B.LogicalOperator && L4_MABX_B.DataType_ooa);
2619
2620 /* Chart: '<S820>/Chart' */
2621 /* Gateway: DIGITAL/Signal Check/RationalityCheck/Chart */
2622 /* During: DIGITAL/Signal Check/RationalityCheck/Chart */
2623 if (L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW == 0U) {
2624 /* Entry: DIGITAL/Signal Check/RationalityCheck/Chart */
2625 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 1U;
2626
2627 /* Entry Internal: DIGITAL/Signal Check/RationalityCheck/Chart */
2628 /* Transition: '<S821>:6' */
2629 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_init_j;
2630
2631 /* Entry 'init': '<S821>:1' */
2632 L4_MABX_B.DiagPassed = false;
2633 } else {
2634 switch (L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf) {
2635 case L4_MABX_IN_DiagPassed:
2636 /* During 'DiagPassed': '<S821>:4' */
2637 break;
2638
2639 case L4_MABX_IN_SwitchOff:
2640 /* During 'SwitchOff': '<S821>:2' */
2641 if (L4_MABX_B.AND2) {
2642 /* Transition: '<S821>:8' */
2643 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_DiagPassed;
2644
2645 /* Entry 'DiagPassed': '<S821>:4' */
2646 L4_MABX_B.DiagPassed = true;
2647 }
2648 break;
2649
2650 case L4_MABX_IN_SwitchOn:
2651 /* During 'SwitchOn': '<S821>:3' */
2652 if (!L4_MABX_B.AND2) {
2653 /* Transition: '<S821>:9' */
2654 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2655 }
2656 break;
2657
2658 default:
2659 /* During 'init': '<S821>:1' */
2660 if (!L4_MABX_B.AND2) {
2661 /* Transition: '<S821>:5' */
2662 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2663 } else {
2664 /* Transition: '<S821>:7' */
2665 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOn;
2666 }
2667 break;
2668 }
2669 }
2670
2671 /* End of Chart: '<S820>/Chart' */
2672
2673 /* Switch: '<S736>/Switch' incorporates:
2674 * Constant: '<S736>/OverrideOperatorEnableSW_Default'
2675 */
2676 if (L4_MABX_B.DiagPassed) {
2677 EnableSw = L4_MABX_B.AND2;
2678 } else {
2679 EnableSw = L4_MABX_P.OverrideOperatorEnableSW_Defaul;
2680 }
2681
2682 /* End of Switch: '<S736>/Switch' */
2683
2684 /* S-Function (rti_commonblock): '<S733>/S-Function1' */
2685 /* This comment workarounds a code generation problem */
2686
2687 /* DataTypeConversion: '<S411>/Data Type Conversion2' */
2688 L4_MABX_B.Pedal_1_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1;
2689
2690 /* RelationalOperator: '<S766>/min_relop' incorporates:
2691 * Constant: '<S738>/PWMAFreqRngMin'
2692 */
2693 L4_MABX_B.min_relop = (L4_MABX_P.PWMAFreqRngMin_Value <
2694 L4_MABX_B.Pedal_1_pwm_freq_raw_value);
2695
2696 /* RelationalOperator: '<S766>/max_relop' incorporates:
2697 * Constant: '<S738>/PWMAFreqRngMax'
2698 */
2699 L4_MABX_B.max_relop = (L4_MABX_B.Pedal_1_pwm_freq_raw_value <
2700 L4_MABX_P.PWMAFreqRngMax_Value);
2701
2702 /* Logic: '<S766>/conjunction' */
2703 L4_MABX_B.conjunction = (L4_MABX_B.min_relop && L4_MABX_B.max_relop);
2704
2705 /* UnitDelay: '<S771>/FixPt Unit Delay2' */
2706 L4_MABX_B.FixPtUnitDelay2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE;
2707
2708 /* UnitDelay: '<S771>/FixPt Unit Delay1' */
2709 L4_MABX_B.Xold = L4_MABX_DW.FixPtUnitDelay1_DSTATE;
2710
2711 /* Switch: '<S771>/Init' incorporates:
2712 * Constant: '<S738>/PWMAFreqRngFaultLimMin'
2713 */
2714 if (L4_MABX_B.FixPtUnitDelay2 != 0) {
2715 L4_MABX_B.Init = L4_MABX_P.PWMAFreqRngFaultLimMin_Value;
2716 } else {
2717 L4_MABX_B.Init = L4_MABX_B.Xold;
2718 }
2719
2720 /* End of Switch: '<S771>/Init' */
2721
2722 /* Sum: '<S767>/FixPt Sum1' incorporates:
2723 * Constant: '<S767>/FixPt Constant'
2724 */
2725 L4_MABX_B.FixPtSum1 = L4_MABX_B.Init - L4_MABX_P.FixPtConstant_Value_d;
2726
2727 /* Sum: '<S770>/FixPt Sum1' incorporates:
2728 * Constant: '<S770>/FixPt Constant'
2729 */
2730 L4_MABX_B.FixPtSum1_f = L4_MABX_B.Init + L4_MABX_P.FixPtConstant_Value_g;
2731
2732 /* Outputs for Atomic SubSystem: '<S754>/If_Then_Else3' */
2733 L4_MABX_If_Then_Else(L4_MABX_B.conjunction, L4_MABX_B.FixPtSum1,
2734 L4_MABX_B.FixPtSum1_f, &L4_MABX_B.If_Then_Else3_i);
2735
2736 /* End of Outputs for SubSystem: '<S754>/If_Then_Else3' */
2737
2738 /* RelationalOperator: '<S768>/Relational Operator1' incorporates:
2739 * Constant: '<S738>/PWMAFreqRngFaultLimMax'
2740 */
2741 L4_MABX_B.RelationalOperator1 = (L4_MABX_B.If_Then_Else3_i.Switch >=
2742 L4_MABX_P.PWMAFreqRngFaultLimMax_Value);
2743
2744 /* RelationalOperator: '<S768>/Relational Operator' incorporates:
2745 * Constant: '<S738>/PWMAFreqRngFaultLimMin'
2746 */
2747 L4_MABX_B.RelationalOperator = (L4_MABX_B.If_Then_Else3_i.Switch <=
2748 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2749
2750 /* Outputs for Atomic SubSystem: '<S768>/If_Then_Else1' */
2751
2752 /* Constant: '<S738>/PWMAFreqRngFaultLimMin' */
2753 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator,
2754 L4_MABX_P.PWMAFreqRngFaultLimMin_Value,
2755 L4_MABX_B.If_Then_Else3_i.Switch,
2756 &L4_MABX_B.If_Then_Else1_l);
2757
2758 /* End of Outputs for SubSystem: '<S768>/If_Then_Else1' */
2759
2760 /* Outputs for Atomic SubSystem: '<S768>/If_Then_Else' */
2761
2762 /* Constant: '<S738>/PWMAFreqRngFaultLimMax' */
2763 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1,
2764 L4_MABX_P.PWMAFreqRngFaultLimMax_Value,
2765 L4_MABX_B.If_Then_Else1_l.Switch,
2766 &L4_MABX_B.If_Then_Else_j);
2767
2768 /* End of Outputs for SubSystem: '<S768>/If_Then_Else' */
2769
2770 /* RelationalOperator: '<S754>/Relational Operator9' incorporates:
2771 * Constant: '<S738>/PWMAFreqRngFaultLimMin'
2772 */
2773 L4_MABX_B.F_Fault_Soft = (L4_MABX_B.If_Then_Else_j.Switch !=
2774 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2775
2776 /* Gain: '<S411>/Gain' */
2777 L4_MABX_B.Gain = L4_MABX_P.Gain_Gain_lw * L4_MABX_B.SFunction1_o2;
2778
2779 /* DataTypeConversion: '<S411>/Data Type Conversion9' */
2780 L4_MABX_B.Pedal_1_pwm_dc_raw_value = L4_MABX_B.Gain;
2781
2782 /* RelationalOperator: '<S758>/min_relop' incorporates:
2783 * Constant: '<S738>/PWMADCRngMin'
2784 */
2785 L4_MABX_B.min_relop_b = (L4_MABX_P.PWMADCRngMin_Value <
2786 L4_MABX_B.Pedal_1_pwm_dc_raw_value);
2787
2788 /* RelationalOperator: '<S758>/max_relop' incorporates:
2789 * Constant: '<S738>/PWMADCRngMax'
2790 */
2791 L4_MABX_B.max_relop_k = (L4_MABX_B.Pedal_1_pwm_dc_raw_value <
2792 L4_MABX_P.PWMADCRngMax_Value);
2793
2794 /* Logic: '<S758>/conjunction' */
2795 L4_MABX_B.conjunction_d = (L4_MABX_B.min_relop_b && L4_MABX_B.max_relop_k);
2796
2797 /* UnitDelay: '<S763>/FixPt Unit Delay2' */
2798 L4_MABX_B.FixPtUnitDelay2_b = L4_MABX_DW.FixPtUnitDelay2_DSTATE_c;
2799
2800 /* UnitDelay: '<S763>/FixPt Unit Delay1' */
2801 L4_MABX_B.Xold_p = L4_MABX_DW.FixPtUnitDelay1_DSTATE_o;
2802
2803 /* Switch: '<S763>/Init' incorporates:
2804 * Constant: '<S738>/PWMADCRngFaultLimMin'
2805 */
2806 if (L4_MABX_B.FixPtUnitDelay2_b != 0) {
2807 L4_MABX_B.Init_f = L4_MABX_P.PWMADCRngFaultLimMin_Value;
2808 } else {
2809 L4_MABX_B.Init_f = L4_MABX_B.Xold_p;
2810 }
2811
2812 /* End of Switch: '<S763>/Init' */
2813
2814 /* Sum: '<S759>/FixPt Sum1' incorporates:
2815 * Constant: '<S759>/FixPt Constant'
2816 */
2817 L4_MABX_B.FixPtSum1_i = L4_MABX_B.Init_f - L4_MABX_P.FixPtConstant_Value_o;
2818
2819 /* Sum: '<S762>/FixPt Sum1' incorporates:
2820 * Constant: '<S762>/FixPt Constant'
2821 */
2822 L4_MABX_B.FixPtSum1_c = L4_MABX_B.Init_f + L4_MABX_P.FixPtConstant_Value_o2;
2823
2824 /* Outputs for Atomic SubSystem: '<S753>/If_Then_Else3' */
2825 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_d, L4_MABX_B.FixPtSum1_i,
2826 L4_MABX_B.FixPtSum1_c, &L4_MABX_B.If_Then_Else3);
2827
2828 /* End of Outputs for SubSystem: '<S753>/If_Then_Else3' */
2829
2830 /* RelationalOperator: '<S760>/Relational Operator1' incorporates:
2831 * Constant: '<S738>/PWMADCRngFaultLimMax'
2832 */
2833 L4_MABX_B.RelationalOperator1_e = (L4_MABX_B.If_Then_Else3.Switch >=
2834 L4_MABX_P.PWMADCRngFaultLimMax_Value);
2835
2836 /* RelationalOperator: '<S760>/Relational Operator' incorporates:
2837 * Constant: '<S738>/PWMADCRngFaultLimMin'
2838 */
2839 L4_MABX_B.RelationalOperator_c = (L4_MABX_B.If_Then_Else3.Switch <=
2840 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2841
2842 /* Outputs for Atomic SubSystem: '<S760>/If_Then_Else1' */
2843
2844 /* Constant: '<S738>/PWMADCRngFaultLimMin' */
2845 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_c,
2846 L4_MABX_P.PWMADCRngFaultLimMin_Value,
2847 L4_MABX_B.If_Then_Else3.Switch,
2848 &L4_MABX_B.If_Then_Else1_k);
2849
2850 /* End of Outputs for SubSystem: '<S760>/If_Then_Else1' */
2851
2852 /* Outputs for Atomic SubSystem: '<S760>/If_Then_Else' */
2853
2854 /* Constant: '<S738>/PWMADCRngFaultLimMax' */
2855 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_e,
2856 L4_MABX_P.PWMADCRngFaultLimMax_Value,
2857 L4_MABX_B.If_Then_Else1_k.Switch,
2858 &L4_MABX_B.If_Then_Else_fj);
2859
2860 /* End of Outputs for SubSystem: '<S760>/If_Then_Else' */
2861
2862 /* RelationalOperator: '<S753>/Relational Operator9' incorporates:
2863 * Constant: '<S738>/PWMADCRngFaultLimMin'
2864 */
2865 L4_MABX_B.F_Fault_Soft_l = (L4_MABX_B.If_Then_Else_fj.Switch !=
2866 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2867
2868 /* Logic: '<S738>/Logical Operator2' */
2869 L4_MABX_B.LogicalOperator2 = (L4_MABX_B.F_Fault_Soft ||
2870 L4_MABX_B.F_Fault_Soft_l);
2871
2872 /* RelationalOperator: '<S754>/Relational Operator8' incorporates:
2873 * Constant: '<S738>/PWMAFreqRngFaultLimMax'
2874 */
2875 L4_MABX_B.F_Fault_Hard = (L4_MABX_P.PWMAFreqRngFaultLimMax_Value <=
2876 L4_MABX_B.If_Then_Else_j.Switch);
2877
2878 /* RelationalOperator: '<S753>/Relational Operator8' incorporates:
2879 * Constant: '<S738>/PWMADCRngFaultLimMax'
2880 */
2881 L4_MABX_B.F_Fault_Hard_h = (L4_MABX_P.PWMADCRngFaultLimMax_Value <=
2882 L4_MABX_B.If_Then_Else_fj.Switch);
2883
2884 /* Logic: '<S738>/Logical Operator1' */
2885 L4_MABX_B.LogicalOperator1 = (L4_MABX_B.F_Fault_Hard ||
2886 L4_MABX_B.F_Fault_Hard_h);
2887
2888 /* Chart: '<S738>/Health State Machine PWM Sensor 1' */
2889 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2890 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2891 if (L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW == 0U) {
2892 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2893 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 1U;
2894
2895 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2896 /* Transition: '<S751>:2' */
2897 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2898
2899 /* Entry 'NO_FAILURE': '<S751>:1' */
2900 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2901 } else if (L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf ==
2902 L4_MABX_IN_FAILURE_DETECTED) {
2903 /* During 'FAILURE_DETECTED': '<S751>:6' */
2904 if (L4_MABX_DW.is_FAILURE_DETECTED_o == L4_MABX_IN_ERROR) {
2905 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2906
2907 /* During 'ERROR': '<S751>:8' */
2908 if (!L4_MABX_B.LogicalOperator1) {
2909 /* Transition: '<S751>:17' */
2910 L4_MABX_DW.is_FAILURE_DETECTED_o = L4_MABX_IN_PENDING;
2911
2912 /* Entry 'PENDING': '<S751>:7' */
2913 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2914 }
2915 } else {
2916 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2917
2918 /* During 'PENDING': '<S751>:7' */
2919 zcEvent = ((!L4_MABX_B.LogicalOperator2) && (!L4_MABX_B.LogicalOperator1));
2920 if (zcEvent) {
2921 /* Transition: '<S751>:9' */
2922 L4_MABX_DW.is_FAILURE_DETECTED_o = L4_MABX_IN_NO_ACTIVE_CHILD;
2923 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2924
2925 /* Entry 'NO_FAILURE': '<S751>:1' */
2926 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2927 } else {
2928 if (L4_MABX_B.LogicalOperator1) {
2929 /* Transition: '<S751>:12' */
2930 L4_MABX_DW.is_FAILURE_DETECTED_o = L4_MABX_IN_ERROR;
2931
2932 /* Entry 'ERROR': '<S751>:8' */
2933 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2934 }
2935 }
2936 }
2937 } else {
2938 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2939
2940 /* During 'NO_FAILURE': '<S751>:1' */
2941 zcEvent = (L4_MABX_B.LogicalOperator2 || L4_MABX_B.LogicalOperator1);
2942 if (zcEvent) {
2943 /* Transition: '<S751>:10' */
2944 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_FAILURE_DETECTED;
2945
2946 /* Entry 'FAILURE_DETECTED': '<S751>:6' */
2947 /* Entry Internal 'FAILURE_DETECTED': '<S751>:6' */
2948 /* Transition: '<S751>:11' */
2949 L4_MABX_DW.is_FAILURE_DETECTED_o = L4_MABX_IN_PENDING;
2950
2951 /* Entry 'PENDING': '<S751>:7' */
2952 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2953 }
2954 }
2955
2956 /* End of Chart: '<S738>/Health State Machine PWM Sensor 1' */
2957
2958 /* RelationalOperator: '<S749>/Compare' incorporates:
2959 * Constant: '<S749>/Constant'
2960 */
2961 L4_MABX_B.Compare = (L4_MABX_B.Pedal_1_pwm_health_state ==
2962 L4_MABX_P.CompareToConstant_const_a);
2963
2964 /* S-Function (rti_commonblock): '<S734>/S-Function1' */
2965 /* This comment workarounds a code generation problem */
2966
2967 /* DataTypeConversion: '<S411>/Data Type Conversion3' */
2968 L4_MABX_B.Pedal_2_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1_l;
2969
2970 /* RelationalOperator: '<S782>/min_relop' incorporates:
2971 * Constant: '<S738>/PWMBFreqRngMin1'
2972 */
2973 L4_MABX_B.min_relop_g = (L4_MABX_P.PWMBFreqRngMin1_Value <
2974 L4_MABX_B.Pedal_2_pwm_freq_raw_value);
2975
2976 /* RelationalOperator: '<S782>/max_relop' incorporates:
2977 * Constant: '<S738>/PWMBFreqRngMax1'
2978 */
2979 L4_MABX_B.max_relop_i = (L4_MABX_B.Pedal_2_pwm_freq_raw_value <
2980 L4_MABX_P.PWMBFreqRngMax1_Value);
2981
2982 /* Logic: '<S782>/conjunction' */
2983 L4_MABX_B.conjunction_o = (L4_MABX_B.min_relop_g && L4_MABX_B.max_relop_i);
2984
2985 /* UnitDelay: '<S787>/FixPt Unit Delay2' */
2986 L4_MABX_B.FixPtUnitDelay2_j = L4_MABX_DW.FixPtUnitDelay2_DSTATE_d;
2987
2988 /* UnitDelay: '<S787>/FixPt Unit Delay1' */
2989 L4_MABX_B.Xold_m = L4_MABX_DW.FixPtUnitDelay1_DSTATE_c;
2990
2991 /* Switch: '<S787>/Init' incorporates:
2992 * Constant: '<S738>/PWMBFreqRngFaultLimMin1'
2993 */
2994 if (L4_MABX_B.FixPtUnitDelay2_j != 0) {
2995 L4_MABX_B.Init_c = L4_MABX_P.PWMBFreqRngFaultLimMin1_Value;
2996 } else {
2997 L4_MABX_B.Init_c = L4_MABX_B.Xold_m;
2998 }
2999
3000 /* End of Switch: '<S787>/Init' */
3001
3002 /* Sum: '<S783>/FixPt Sum1' incorporates:
3003 * Constant: '<S783>/FixPt Constant'
3004 */
3005 L4_MABX_B.FixPtSum1_cq = L4_MABX_B.Init_c - L4_MABX_P.FixPtConstant_Value_i;
3006
3007 /* Sum: '<S786>/FixPt Sum1' incorporates:
3008 * Constant: '<S786>/FixPt Constant'
3009 */
3010 L4_MABX_B.FixPtSum1_iu = L4_MABX_B.Init_c + L4_MABX_P.FixPtConstant_Value_de;
3011
3012 /* Outputs for Atomic SubSystem: '<S756>/If_Then_Else3' */
3013 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_o, L4_MABX_B.FixPtSum1_cq,
3014 L4_MABX_B.FixPtSum1_iu, &L4_MABX_B.If_Then_Else3_g);
3015
3016 /* End of Outputs for SubSystem: '<S756>/If_Then_Else3' */
3017
3018 /* RelationalOperator: '<S784>/Relational Operator1' incorporates:
3019 * Constant: '<S738>/PWMBFreqRngFaultLimMax1'
3020 */
3021 L4_MABX_B.RelationalOperator1_h = (L4_MABX_B.If_Then_Else3_g.Switch >=
3022 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value);
3023
3024 /* RelationalOperator: '<S784>/Relational Operator' incorporates:
3025 * Constant: '<S738>/PWMBFreqRngFaultLimMin1'
3026 */
3027 L4_MABX_B.RelationalOperator_k = (L4_MABX_B.If_Then_Else3_g.Switch <=
3028 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3029
3030 /* Outputs for Atomic SubSystem: '<S784>/If_Then_Else1' */
3031
3032 /* Constant: '<S738>/PWMBFreqRngFaultLimMin1' */
3033 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_k,
3034 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value,
3035 L4_MABX_B.If_Then_Else3_g.Switch,
3036 &L4_MABX_B.If_Then_Else1_lo);
3037
3038 /* End of Outputs for SubSystem: '<S784>/If_Then_Else1' */
3039
3040 /* Outputs for Atomic SubSystem: '<S784>/If_Then_Else' */
3041
3042 /* Constant: '<S738>/PWMBFreqRngFaultLimMax1' */
3043 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_h,
3044 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value,
3045 L4_MABX_B.If_Then_Else1_lo.Switch,
3046 &L4_MABX_B.If_Then_Else_a);
3047
3048 /* End of Outputs for SubSystem: '<S784>/If_Then_Else' */
3049
3050 /* RelationalOperator: '<S756>/Relational Operator9' incorporates:
3051 * Constant: '<S738>/PWMBFreqRngFaultLimMin1'
3052 */
3053 L4_MABX_B.F_Fault_Soft_j = (L4_MABX_B.If_Then_Else_a.Switch !=
3054 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3055
3056 /* Gain: '<S411>/Gain1' */
3057 L4_MABX_B.Gain1 = L4_MABX_P.Gain1_Gain_d * L4_MABX_B.SFunction1_o2_j;
3058
3059 /* DataTypeConversion: '<S411>/Data Type Conversion1' */
3060 L4_MABX_B.Pedal_2_pwm_dc_raw_value = L4_MABX_B.Gain1;
3061
3062 /* RelationalOperator: '<S774>/min_relop' incorporates:
3063 * Constant: '<S738>/PWMBDCRngMin1'
3064 */
3065 L4_MABX_B.min_relop_bm = (L4_MABX_P.PWMBDCRngMin1_Value <
3066 L4_MABX_B.Pedal_2_pwm_dc_raw_value);
3067
3068 /* RelationalOperator: '<S774>/max_relop' incorporates:
3069 * Constant: '<S738>/PWMBDCRngMax1'
3070 */
3071 L4_MABX_B.max_relop_d = (L4_MABX_B.Pedal_2_pwm_dc_raw_value <
3072 L4_MABX_P.PWMBDCRngMax1_Value);
3073
3074 /* Logic: '<S774>/conjunction' */
3075 L4_MABX_B.conjunction_m = (L4_MABX_B.min_relop_bm && L4_MABX_B.max_relop_d);
3076
3077 /* UnitDelay: '<S779>/FixPt Unit Delay2' */
3078 L4_MABX_B.FixPtUnitDelay2_h = L4_MABX_DW.FixPtUnitDelay2_DSTATE_h;
3079
3080 /* UnitDelay: '<S779>/FixPt Unit Delay1' */
3081 L4_MABX_B.Xold_e = L4_MABX_DW.FixPtUnitDelay1_DSTATE_p;
3082
3083 /* Switch: '<S779>/Init' incorporates:
3084 * Constant: '<S738>/PWMBDCRngFaultLimMin1'
3085 */
3086 if (L4_MABX_B.FixPtUnitDelay2_h != 0) {
3087 L4_MABX_B.Init_m = L4_MABX_P.PWMBDCRngFaultLimMin1_Value;
3088 } else {
3089 L4_MABX_B.Init_m = L4_MABX_B.Xold_e;
3090 }
3091
3092 /* End of Switch: '<S779>/Init' */
3093
3094 /* Sum: '<S775>/FixPt Sum1' incorporates:
3095 * Constant: '<S775>/FixPt Constant'
3096 */
3097 L4_MABX_B.FixPtSum1_j = L4_MABX_B.Init_m - L4_MABX_P.FixPtConstant_Value_ik;
3098
3099 /* Sum: '<S778>/FixPt Sum1' incorporates:
3100 * Constant: '<S778>/FixPt Constant'
3101 */
3102 L4_MABX_B.FixPtSum1_ip = L4_MABX_B.Init_m + L4_MABX_P.FixPtConstant_Value_b;
3103
3104 /* Outputs for Atomic SubSystem: '<S755>/If_Then_Else3' */
3105 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_m, L4_MABX_B.FixPtSum1_j,
3106 L4_MABX_B.FixPtSum1_ip, &L4_MABX_B.If_Then_Else3_j);
3107
3108 /* End of Outputs for SubSystem: '<S755>/If_Then_Else3' */
3109
3110 /* RelationalOperator: '<S776>/Relational Operator1' incorporates:
3111 * Constant: '<S738>/PWMBDCRngFaultLimMax1'
3112 */
3113 L4_MABX_B.RelationalOperator1_p = (L4_MABX_B.If_Then_Else3_j.Switch >=
3114 L4_MABX_P.PWMBDCRngFaultLimMax1_Value);
3115
3116 /* RelationalOperator: '<S776>/Relational Operator' incorporates:
3117 * Constant: '<S738>/PWMBDCRngFaultLimMin1'
3118 */
3119 L4_MABX_B.RelationalOperator_cj = (L4_MABX_B.If_Then_Else3_j.Switch <=
3120 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3121
3122 /* Outputs for Atomic SubSystem: '<S776>/If_Then_Else1' */
3123
3124 /* Constant: '<S738>/PWMBDCRngFaultLimMin1' */
3125 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_cj,
3126 L4_MABX_P.PWMBDCRngFaultLimMin1_Value,
3127 L4_MABX_B.If_Then_Else3_j.Switch,
3128 &L4_MABX_B.If_Then_Else1_p);
3129
3130 /* End of Outputs for SubSystem: '<S776>/If_Then_Else1' */
3131
3132 /* Outputs for Atomic SubSystem: '<S776>/If_Then_Else' */
3133
3134 /* Constant: '<S738>/PWMBDCRngFaultLimMax1' */
3135 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_p,
3136 L4_MABX_P.PWMBDCRngFaultLimMax1_Value,
3137 L4_MABX_B.If_Then_Else1_p.Switch,
3138 &L4_MABX_B.If_Then_Else_k);
3139
3140 /* End of Outputs for SubSystem: '<S776>/If_Then_Else' */
3141
3142 /* RelationalOperator: '<S755>/Relational Operator9' incorporates:
3143 * Constant: '<S738>/PWMBDCRngFaultLimMin1'
3144 */
3145 L4_MABX_B.F_Fault_Soft_o = (L4_MABX_B.If_Then_Else_k.Switch !=
3146 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3147
3148 /* Logic: '<S738>/Logical Operator4' */
3149 L4_MABX_B.LogicalOperator4 = (L4_MABX_B.F_Fault_Soft_j ||
3150 L4_MABX_B.F_Fault_Soft_o);
3151
3152 /* RelationalOperator: '<S756>/Relational Operator8' incorporates:
3153 * Constant: '<S738>/PWMBFreqRngFaultLimMax1'
3154 */
3155 L4_MABX_B.F_Fault_Hard_hv = (L4_MABX_P.PWMBFreqRngFaultLimMax1_Value <=
3156 L4_MABX_B.If_Then_Else_a.Switch);
3157
3158 /* RelationalOperator: '<S755>/Relational Operator8' incorporates:
3159 * Constant: '<S738>/PWMBDCRngFaultLimMax1'
3160 */
3161 L4_MABX_B.F_Fault_Hard_p = (L4_MABX_P.PWMBDCRngFaultLimMax1_Value <=
3162 L4_MABX_B.If_Then_Else_k.Switch);
3163
3164 /* Logic: '<S738>/Logical Operator3' */
3165 L4_MABX_B.LogicalOperator3 = (L4_MABX_B.F_Fault_Hard_hv ||
3166 L4_MABX_B.F_Fault_Hard_p);
3167
3168 /* Chart: '<S738>/Health State Machine PWM Sensor 2' */
3169 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3170 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3171 if (L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H == 0U) {
3172 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3173 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 1U;
3174
3175 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3176 /* Transition: '<S752>:2' */
3177 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3178
3179 /* Entry 'NO_FAILURE': '<S752>:1' */
3180 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3181 } else if (L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter ==
3182 L4_MABX_IN_FAILURE_DETECTED) {
3183 /* During 'FAILURE_DETECTED': '<S752>:6' */
3184 if (L4_MABX_DW.is_FAILURE_DETECTED == L4_MABX_IN_ERROR) {
3185 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3186
3187 /* During 'ERROR': '<S752>:8' */
3188 if (!L4_MABX_B.LogicalOperator3) {
3189 /* Transition: '<S752>:20' */
3190 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3191
3192 /* Entry 'PENDING': '<S752>:7' */
3193 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3194 }
3195 } else {
3196 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3197
3198 /* During 'PENDING': '<S752>:7' */
3199 zcEvent = ((!L4_MABX_B.LogicalOperator4) && (!L4_MABX_B.LogicalOperator3));
3200 if (zcEvent) {
3201 /* Transition: '<S752>:9' */
3202 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
3203 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3204
3205 /* Entry 'NO_FAILURE': '<S752>:1' */
3206 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3207 } else {
3208 if (L4_MABX_B.LogicalOperator3) {
3209 /* Transition: '<S752>:12' */
3210 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_ERROR;
3211
3212 /* Entry 'ERROR': '<S752>:8' */
3213 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3214 }
3215 }
3216 }
3217 } else {
3218 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3219
3220 /* During 'NO_FAILURE': '<S752>:1' */
3221 zcEvent = (L4_MABX_B.LogicalOperator4 || L4_MABX_B.LogicalOperator3);
3222 if (zcEvent) {
3223 /* Transition: '<S752>:10' */
3224 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_FAILURE_DETECTED;
3225
3226 /* Entry 'FAILURE_DETECTED': '<S752>:6' */
3227 /* Entry Internal 'FAILURE_DETECTED': '<S752>:6' */
3228 /* Transition: '<S752>:11' */
3229 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3230
3231 /* Entry 'PENDING': '<S752>:7' */
3232 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3233 }
3234 }
3235
3236 /* End of Chart: '<S738>/Health State Machine PWM Sensor 2' */
3237
3238 /* RelationalOperator: '<S750>/Compare' incorporates:
3239 * Constant: '<S750>/Constant'
3240 */
3241 L4_MABX_B.Compare_c = (L4_MABX_B.Pedal_2_pwm_health_state ==
3242 L4_MABX_P.CompareToConstant2_const_d);
3243
3244 /* Logic: '<S738>/Logical Operator5' */
3245 L4_MABX_B.F_Pedal_pwm_sens_total_failure = (L4_MABX_B.Compare &&
3246 L4_MABX_B.Compare_c);
3247
3248 /* UnitDelay: '<S741>/Unit_Delay' */
3249 L4_MABX_B.Unit_Delay_jw = L4_MABX_DW.Unit_Delay_DSTATE_mb;
3250
3251 /* UnitDelay: '<S808>/Unit_Delay1' */
3252 L4_MABX_B.Unit_Delay1 = L4_MABX_DW.Unit_Delay1_DSTATE;
3253
3254 /* Logic: '<S808>/Logical Operator' */
3255 L4_MABX_B.LogicalOperator_m = (L4_MABX_B.Unit_Delay_jw ||
3256 L4_MABX_B.Unit_Delay1);
3257
3258 /* MinMax: '<S808>/MinMax1' incorporates:
3259 * Constant: '<S741>/PEDAL_PWM_SENSOR_DATA_APV.T1_CONST'
3260 * Constant: '<S741>/dT'
3261 */
3262 DeltaTime = L4_MABX_P.dT_Value;
3263 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT1_CON;
3264 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3265 PositionFinalLimited = DeltaTime;
3266 }
3267
3268 L4_MABX_B.MinMax1 = PositionFinalLimited;
3269
3270 /* End of MinMax: '<S808>/MinMax1' */
3271
3272 /* Saturate: '<S808>/Saturation' */
3273 DeltaTime = L4_MABX_B.MinMax1;
3274 Time56 = L4_MABX_P.Saturation_LowerSat_gy;
3275 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_k;
3276 if (DeltaTime > PositionFinalLimited) {
3277 L4_MABX_B.Saturation = PositionFinalLimited;
3278 } else if (DeltaTime < Time56) {
3279 L4_MABX_B.Saturation = Time56;
3280 } else {
3281 L4_MABX_B.Saturation = DeltaTime;
3282 }
3283
3284 /* End of Saturate: '<S808>/Saturation' */
3285
3286 /* Product: '<S808>/Divide' incorporates:
3287 * Constant: '<S741>/dT'
3288 */
3289 L4_MABX_B.Divide = L4_MABX_P.dT_Value / L4_MABX_B.Saturation;
3290
3291 /* Product: '<S808>/Product2' */
3292 L4_MABX_B.Product2 = L4_MABX_B.Pedal_1_pwm_dc_raw_value * L4_MABX_B.Divide;
3293
3294 /* Sum: '<S808>/Subtract1' incorporates:
3295 * Constant: '<S808>/Constant1'
3296 */
3297 L4_MABX_B.Subtract1 = L4_MABX_P.Constant1_Value_gf - L4_MABX_B.Divide;
3298
3299 /* UnitDelay: '<S808>/Unit_Delay2' */
3300 L4_MABX_B.Unit_Delay2 = L4_MABX_DW.Unit_Delay2_DSTATE;
3301
3302 /* Product: '<S808>/Product1' */
3303 L4_MABX_B.Product1 = L4_MABX_B.Subtract1 * L4_MABX_B.Unit_Delay2;
3304
3305 /* Sum: '<S808>/Add1' */
3306 L4_MABX_B.Add1 = L4_MABX_B.Product2 + L4_MABX_B.Product1;
3307
3308 /* Outputs for Atomic SubSystem: '<S808>/If_Then_Else' */
3309 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_m,
3310 L4_MABX_B.Pedal_1_pwm_dc_raw_value, L4_MABX_B.Add1,
3311 &L4_MABX_B.If_Then_Else_c);
3312
3313 /* End of Outputs for SubSystem: '<S808>/If_Then_Else' */
3314
3315 /* Lookup_n-D: '<S741>/PEDAL_PWM_ANGLE_SENS_1_MPV' */
3316 L4_MABX_B.Pedal_1_pwm_undefault = look1_binlcapw
3317 (L4_MABX_B.If_Then_Else_c.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_bp01,
3318 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_tabl, 7U);
3319
3320 /* UnitDelay: '<S741>/Unit_Delay1' */
3321 L4_MABX_B.Unit_Delay1_b = L4_MABX_DW.Unit_Delay1_DSTATE_c;
3322
3323 /* UnitDelay: '<S809>/Unit_Delay1' */
3324 L4_MABX_B.Unit_Delay1_j = L4_MABX_DW.Unit_Delay1_DSTATE_j;
3325
3326 /* Logic: '<S809>/Logical Operator' */
3327 L4_MABX_B.LogicalOperator_d = (L4_MABX_B.Unit_Delay1_b ||
3328 L4_MABX_B.Unit_Delay1_j);
3329
3330 /* MinMax: '<S809>/MinMax1' incorporates:
3331 * Constant: '<S741>/PEDAL_PWM_SENSOR_DATA_APV.T2_CONST'
3332 * Constant: '<S741>/dT1'
3333 */
3334 DeltaTime = L4_MABX_P.dT1_Value;
3335 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT2_CON;
3336 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3337 PositionFinalLimited = DeltaTime;
3338 }
3339
3340 L4_MABX_B.MinMax1_b = PositionFinalLimited;
3341
3342 /* End of MinMax: '<S809>/MinMax1' */
3343
3344 /* Saturate: '<S809>/Saturation' */
3345 DeltaTime = L4_MABX_B.MinMax1_b;
3346 Time56 = L4_MABX_P.Saturation_LowerSat_o;
3347 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_df;
3348 if (DeltaTime > PositionFinalLimited) {
3349 L4_MABX_B.Saturation_i = PositionFinalLimited;
3350 } else if (DeltaTime < Time56) {
3351 L4_MABX_B.Saturation_i = Time56;
3352 } else {
3353 L4_MABX_B.Saturation_i = DeltaTime;
3354 }
3355
3356 /* End of Saturate: '<S809>/Saturation' */
3357
3358 /* Product: '<S809>/Divide' incorporates:
3359 * Constant: '<S741>/dT1'
3360 */
3361 L4_MABX_B.Divide_p = L4_MABX_P.dT1_Value / L4_MABX_B.Saturation_i;
3362
3363 /* Product: '<S809>/Product2' */
3364 L4_MABX_B.Product2_p = L4_MABX_B.Pedal_2_pwm_freq_raw_value *
3365 L4_MABX_B.Divide_p;
3366
3367 /* Sum: '<S809>/Subtract1' incorporates:
3368 * Constant: '<S809>/Constant1'
3369 */
3370 L4_MABX_B.Subtract1_g = L4_MABX_P.Constant1_Value_el - L4_MABX_B.Divide_p;
3371
3372 /* UnitDelay: '<S809>/Unit_Delay2' */
3373 L4_MABX_B.Unit_Delay2_h = L4_MABX_DW.Unit_Delay2_DSTATE_i;
3374
3375 /* Product: '<S809>/Product1' */
3376 L4_MABX_B.Product1_e = L4_MABX_B.Subtract1_g * L4_MABX_B.Unit_Delay2_h;
3377
3378 /* Sum: '<S809>/Add1' */
3379 L4_MABX_B.Add1_f = L4_MABX_B.Product2_p + L4_MABX_B.Product1_e;
3380
3381 /* Outputs for Atomic SubSystem: '<S809>/If_Then_Else' */
3382 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_d,
3383 L4_MABX_B.Pedal_2_pwm_freq_raw_value, L4_MABX_B.Add1_f,
3384 &L4_MABX_B.If_Then_Else_kl);
3385
3386 /* End of Outputs for SubSystem: '<S809>/If_Then_Else' */
3387
3388 /* Lookup_n-D: '<S741>/PEDAL_PWM_ANGLE_SENS_2_MPV' */
3389 L4_MABX_B.Pedal_2_pwm_undefault = look1_binlcapw
3390 (L4_MABX_B.If_Then_Else_kl.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_bp01,
3391 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_tabl, 7U);
3392
3393 /* Sum: '<S743>/Subtract' */
3394 L4_MABX_B.Subtract = L4_MABX_B.Pedal_1_pwm_undefault -
3395 L4_MABX_B.Pedal_2_pwm_undefault;
3396
3397 /* Abs: '<S743>/Abs' */
3398 L4_MABX_B.Abs = fabs(L4_MABX_B.Subtract);
3399
3400 /* RelationalOperator: '<S745>/Compare' incorporates:
3401 * Constant: '<S745>/Constant'
3402 */
3403 L4_MABX_B.Compare_n = (L4_MABX_B.Pedal_1_pwm_health_state ==
3404 L4_MABX_P.CompareToConstant3_const_o);
3405
3406 /* RelationalOperator: '<S801>/Compare' incorporates:
3407 * Constant: '<S801>/Constant'
3408 */
3409 L4_MABX_B.Compare_f = (L4_MABX_B.Pedal_2_pwm_health_state ==
3410 L4_MABX_P.CompareToConstant5_const);
3411
3412 /* Logic: '<S739>/Logical Operator7' */
3413 L4_MABX_B.LogicalOperator7 = !L4_MABX_B.Compare_f;
3414
3415 /* RelationalOperator: '<S800>/Compare' incorporates:
3416 * Constant: '<S800>/Constant'
3417 */
3418 L4_MABX_B.Compare_h = (L4_MABX_B.Pedal_2_pwm_health_state ==
3419 L4_MABX_P.CompareToConstant4_const);
3420
3421 /* Logic: '<S739>/Logical Operator8' */
3422 L4_MABX_B.LogicalOperator8 = !L4_MABX_B.Compare_h;
3423
3424 /* UnitDelay: '<S807>/FixPt Unit Delay2' */
3425 L4_MABX_B.FixPtUnitDelay2_a = L4_MABX_DW.FixPtUnitDelay2_DSTATE_dm;
3426
3427 /* UnitDelay: '<S807>/FixPt Unit Delay1' */
3428 L4_MABX_B.Xold_n = L4_MABX_DW.FixPtUnitDelay1_DSTATE_cc;
3429
3430 /* Switch: '<S807>/Init' incorporates:
3431 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3432 */
3433 if (L4_MABX_B.FixPtUnitDelay2_a != 0) {
3434 L4_MABX_B.Init_fo = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3435 } else {
3436 L4_MABX_B.Init_fo = L4_MABX_B.Xold_n;
3437 }
3438
3439 /* End of Switch: '<S807>/Init' */
3440
3441 /* Outputs for Atomic SubSystem: '<S739>/If_Then_Else3' */
3442 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator8,
3443 L4_MABX_B.Pedal_2_pwm_undefault, L4_MABX_B.Init_fo,
3444 &L4_MABX_B.If_Then_Else3_o);
3445
3446 /* End of Outputs for SubSystem: '<S739>/If_Then_Else3' */
3447
3448 /* Outputs for Atomic SubSystem: '<S739>/If_Then_Else2' */
3449
3450 /* Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3451 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator7,
3452 L4_MABX_B.If_Then_Else3_o.Switch,
3453 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3454 &L4_MABX_B.If_Then_Else2_p);
3455
3456 /* End of Outputs for SubSystem: '<S739>/If_Then_Else2' */
3457
3458 /* RelationalOperator: '<S799>/Compare' incorporates:
3459 * Constant: '<S799>/Constant'
3460 */
3461 L4_MABX_B.Compare_k = (L4_MABX_B.Pedal_1_pwm_health_state ==
3462 L4_MABX_P.CompareToConstant3_const_n);
3463
3464 /* Logic: '<S739>/Logical Operator5' */
3465 L4_MABX_B.LogicalOperator5 = !L4_MABX_B.Compare_k;
3466
3467 /* RelationalOperator: '<S798>/Compare' incorporates:
3468 * Constant: '<S798>/Constant'
3469 */
3470 L4_MABX_B.Compare_hd = (L4_MABX_B.Pedal_1_pwm_health_state ==
3471 L4_MABX_P.CompareToConstant1_const_a);
3472
3473 /* Logic: '<S739>/Logical Operator6' */
3474 L4_MABX_B.LogicalOperator6 = !L4_MABX_B.Compare_hd;
3475
3476 /* UnitDelay: '<S806>/FixPt Unit Delay2' */
3477 L4_MABX_B.FixPtUnitDelay2_e = L4_MABX_DW.FixPtUnitDelay2_DSTATE_i;
3478
3479 /* UnitDelay: '<S806>/FixPt Unit Delay1' */
3480 L4_MABX_B.Xold_j = L4_MABX_DW.FixPtUnitDelay1_DSTATE_od;
3481
3482 /* Switch: '<S806>/Init' incorporates:
3483 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3484 */
3485 if (L4_MABX_B.FixPtUnitDelay2_e != 0) {
3486 L4_MABX_B.Init_i = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3487 } else {
3488 L4_MABX_B.Init_i = L4_MABX_B.Xold_j;
3489 }
3490
3491 /* End of Switch: '<S806>/Init' */
3492
3493 /* Outputs for Atomic SubSystem: '<S739>/If_Then_Else1' */
3494 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator6,
3495 L4_MABX_B.Pedal_1_pwm_undefault, L4_MABX_B.Init_i,
3496 &L4_MABX_B.If_Then_Else1_f);
3497
3498 /* End of Outputs for SubSystem: '<S739>/If_Then_Else1' */
3499
3500 /* Outputs for Atomic SubSystem: '<S739>/If_Then_Else' */
3501
3502 /* Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3503 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator5,
3504 L4_MABX_B.If_Then_Else1_f.Switch,
3505 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3506 &L4_MABX_B.If_Then_Else_h);
3507
3508 /* End of Outputs for SubSystem: '<S739>/If_Then_Else' */
3509
3510 /* Outputs for Atomic SubSystem: '<S737>/If_Then_Else1' */
3511 L4_MABX_If_Then_Else(L4_MABX_B.Compare_n, L4_MABX_B.If_Then_Else2_p.Switch,
3512 L4_MABX_B.If_Then_Else_h.Switch, &L4_MABX_B.If_Then_Else1);
3513
3514 /* End of Outputs for SubSystem: '<S737>/If_Then_Else1' */
3515
3516 /* RelationalOperator: '<S744>/Compare' incorporates:
3517 * Constant: '<S744>/Constant'
3518 */
3519 L4_MABX_B.Compare_g = (L4_MABX_B.Pedal_2_pwm_health_state ==
3520 L4_MABX_P.CompareToConstant1_const_h);
3521
3522 /* Outputs for Atomic SubSystem: '<S737>/If_Then_Else2' */
3523 L4_MABX_If_Then_Else(L4_MABX_B.Compare_g, L4_MABX_B.If_Then_Else_h.Switch,
3524 L4_MABX_B.If_Then_Else2_p.Switch,
3525 &L4_MABX_B.If_Then_Else2);
3526
3527 /* End of Outputs for SubSystem: '<S737>/If_Then_Else2' */
3528
3529 /* MinMax: '<S737>/MinMax' */
3530 DeltaTime = L4_MABX_B.If_Then_Else1.Switch;
3531 PositionFinalLimited = L4_MABX_B.If_Then_Else2.Switch;
3532 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3533 PositionFinalLimited = DeltaTime;
3534 }
3535
3536 L4_MABX_B.MinMax = PositionFinalLimited;
3537
3538 /* End of MinMax: '<S737>/MinMax' */
3539
3540 /* Outputs for Atomic SubSystem: '<S737>/If_Then_Else' */
3541
3542 /* Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3543 L4_MABX_If_Then_Else(L4_MABX_B.F_Pedal_pwm_sens_total_failure,
3544 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3545 L4_MABX_B.MinMax, &L4_MABX_B.If_Then_Else_f);
3546
3547 /* End of Outputs for SubSystem: '<S737>/If_Then_Else' */
3548
3549 /* Lookup_n-D: '<S743>/PEDAL_PWM_ANGLE_DEV_MPV' */
3550 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV = look1_binlcapw
3551 (L4_MABX_B.If_Then_Else_f.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_bp01Dat,
3552 L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_tableDa, 7U);
3553
3554 /* RelationalOperator: '<S743>/Relational Operator' */
3555 L4_MABX_B.F_Pedal_pwm_sync_fault = (L4_MABX_B.Abs >
3556 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV);
3557
3558 /* DataTypeConversion: '<S738>/Data Type Conversion2' */
3559 L4_MABX_B.DataTypeConversion2 = L4_MABX_B.F_Pedal_pwm_sync_fault;
3560
3561 /* RelationalOperator: '<S790>/min_relop' incorporates:
3562 * Constant: '<S738>/PWMSynchRngMin'
3563 */
3564 L4_MABX_B.min_relop_bz = (L4_MABX_P.PWMSynchRngMin_Value <
3565 L4_MABX_B.DataTypeConversion2);
3566
3567 /* RelationalOperator: '<S790>/max_relop' incorporates:
3568 * Constant: '<S738>/PWMSynchRngMax'
3569 */
3570 L4_MABX_B.max_relop_g = (L4_MABX_B.DataTypeConversion2 <
3571 L4_MABX_P.PWMSynchRngMax_Value);
3572
3573 /* Logic: '<S790>/conjunction' */
3574 L4_MABX_B.conjunction_dt = (L4_MABX_B.min_relop_bz && L4_MABX_B.max_relop_g);
3575
3576 /* UnitDelay: '<S795>/FixPt Unit Delay2' */
3577 L4_MABX_B.FixPtUnitDelay2_c = L4_MABX_DW.FixPtUnitDelay2_DSTATE_k;
3578
3579 /* UnitDelay: '<S795>/FixPt Unit Delay1' */
3580 L4_MABX_B.Xold_pl = L4_MABX_DW.FixPtUnitDelay1_DSTATE_l;
3581
3582 /* Switch: '<S795>/Init' incorporates:
3583 * Constant: '<S738>/PWMSynchFaultLimMin'
3584 */
3585 if (L4_MABX_B.FixPtUnitDelay2_c != 0) {
3586 L4_MABX_B.Init_a = L4_MABX_P.PWMSynchFaultLimMin_Value;
3587 } else {
3588 L4_MABX_B.Init_a = L4_MABX_B.Xold_pl;
3589 }
3590
3591 /* End of Switch: '<S795>/Init' */
3592
3593 /* Sum: '<S791>/FixPt Sum1' incorporates:
3594 * Constant: '<S791>/FixPt Constant'
3595 */
3596 L4_MABX_B.FixPtSum1_jm = L4_MABX_B.Init_a - L4_MABX_P.FixPtConstant_Value_m;
3597
3598 /* Sum: '<S794>/FixPt Sum1' incorporates:
3599 * Constant: '<S794>/FixPt Constant'
3600 */
3601 L4_MABX_B.FixPtSum1_cv = L4_MABX_B.Init_a + L4_MABX_P.FixPtConstant_Value_mk;
3602
3603 /* Outputs for Atomic SubSystem: '<S757>/If_Then_Else3' */
3604 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_dt, L4_MABX_B.FixPtSum1_jm,
3605 L4_MABX_B.FixPtSum1_cv, &L4_MABX_B.If_Then_Else3_f);
3606
3607 /* End of Outputs for SubSystem: '<S757>/If_Then_Else3' */
3608
3609 /* RelationalOperator: '<S792>/Relational Operator1' incorporates:
3610 * Constant: '<S738>/PWMSynchFaultLimMax'
3611 */
3612 L4_MABX_B.RelationalOperator1_o = (L4_MABX_B.If_Then_Else3_f.Switch >=
3613 L4_MABX_P.PWMSynchFaultLimMax_Value);
3614
3615 /* RelationalOperator: '<S792>/Relational Operator' incorporates:
3616 * Constant: '<S738>/PWMSynchFaultLimMin'
3617 */
3618 L4_MABX_B.RelationalOperator_j = (L4_MABX_B.If_Then_Else3_f.Switch <=
3619 L4_MABX_P.PWMSynchFaultLimMin_Value);
3620
3621 /* Outputs for Atomic SubSystem: '<S792>/If_Then_Else1' */
3622
3623 /* Constant: '<S738>/PWMSynchFaultLimMin' */
3624 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j,
3625 L4_MABX_P.PWMSynchFaultLimMin_Value,
3626 L4_MABX_B.If_Then_Else3_f.Switch,
3627 &L4_MABX_B.If_Then_Else1_kx);
3628
3629 /* End of Outputs for SubSystem: '<S792>/If_Then_Else1' */
3630
3631 /* Outputs for Atomic SubSystem: '<S792>/If_Then_Else' */
3632
3633 /* Constant: '<S738>/PWMSynchFaultLimMax' */
3634 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_o,
3635 L4_MABX_P.PWMSynchFaultLimMax_Value,
3636 L4_MABX_B.If_Then_Else1_kx.Switch,
3637 &L4_MABX_B.If_Then_Else_i);
3638
3639 /* End of Outputs for SubSystem: '<S792>/If_Then_Else' */
3640
3641 /* RelationalOperator: '<S757>/Relational Operator8' incorporates:
3642 * Constant: '<S738>/PWMSynchFaultLimMax'
3643 */
3644 L4_MABX_B.F_Fault_Hard_l = (L4_MABX_P.PWMSynchFaultLimMax_Value <=
3645 L4_MABX_B.If_Then_Else_i.Switch);
3646
3647 /* Logic: '<S735>/Logical Operator6' */
3648 L4_MABX_B.LogicalOperator6_b = (L4_MABX_B.F_Pedal_pwm_sens_total_failure ||
3649 L4_MABX_B.F_Fault_Hard_l);
3650
3651 /* Outputs for Enabled SubSystem: '<S735>/Slew_at_event' incorporates:
3652 * EnablePort: '<S742>/Enable'
3653 */
3654 /* Constant: '<S735>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3655 if (L4_MABX_P.F_PEDAL_TORQUE_SLEW_AT_FAULT_Va) {
3656 if (!L4_MABX_DW.Slew_at_event_MODE) {
3657 /* InitializeConditions for UnitDelay: '<S813>/Unit_Delay' */
3658 L4_MABX_DW.Unit_Delay_DSTATE_jo = L4_MABX_P.Unit_Delay_InitialCondition_o4;
3659
3660 /* InitializeConditions for UnitDelay: '<S814>/Unit_Delay' */
3661 L4_MABX_DW.Unit_Delay_DSTATE_aa = L4_MABX_P.Unit_Delay_InitialCondition_lk;
3662
3663 /* InitializeConditions for UnitDelay: '<S817>/FixPt Unit Delay2' */
3664 L4_MABX_DW.FixPtUnitDelay2_DSTATE_dv =
3665 L4_MABX_P.FixPtUnitDelay2_InitialCondi_au;
3666
3667 /* InitializeConditions for UnitDelay: '<S817>/FixPt Unit Delay1' */
3668 L4_MABX_DW.FixPtUnitDelay1_DSTATE_oj =
3669 L4_MABX_P.FixPtUnitDelay1_InitialCondit_g;
3670
3671 /* InitializeConditions for UnitDelay: '<S812>/Unit_Delay' */
3672 L4_MABX_DW.Unit_Delay_DSTATE_jl = L4_MABX_P.Unit_Delay_InitialCondition_om;
3673 L4_MABX_DW.Slew_at_event_MODE = true;
3674 }
3675
3676 /* UnitDelay: '<S813>/Unit_Delay' */
3677 L4_MABX_B.Unit_Delay_mq = L4_MABX_DW.Unit_Delay_DSTATE_jo;
3678
3679 /* Logic: '<S813>/Logical Operator1' */
3680 L4_MABX_B.LogicalOperator1_e = !L4_MABX_B.Unit_Delay_mq;
3681
3682 /* Logic: '<S813>/Logical Operator' */
3683 L4_MABX_B.LogicalOperator_ck = (L4_MABX_B.LogicalOperator6_b &&
3684 L4_MABX_B.LogicalOperator1_e);
3685
3686 /* UnitDelay: '<S814>/Unit_Delay' */
3687 L4_MABX_B.Unit_Delay_cb = L4_MABX_DW.Unit_Delay_DSTATE_aa;
3688
3689 /* Logic: '<S814>/Logical Operator1' */
3690 L4_MABX_B.LogicalOperator1_i = (L4_MABX_B.LogicalOperator_ck ||
3691 L4_MABX_B.Unit_Delay_cb);
3692
3693 /* UnitDelay: '<S817>/FixPt Unit Delay2' */
3694 L4_MABX_B.FixPtUnitDelay2_bh = L4_MABX_DW.FixPtUnitDelay2_DSTATE_dv;
3695
3696 /* UnitDelay: '<S817>/FixPt Unit Delay1' */
3697 L4_MABX_B.Xold_m2 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_oj;
3698
3699 /* Switch: '<S817>/Init' incorporates:
3700 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3701 */
3702 if (L4_MABX_B.FixPtUnitDelay2_bh != 0) {
3703 L4_MABX_B.Init_g = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3704 } else {
3705 L4_MABX_B.Init_g = L4_MABX_B.Xold_m2;
3706 }
3707
3708 /* End of Switch: '<S817>/Init' */
3709
3710 /* Abs: '<S814>/Abs' incorporates:
3711 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3712 */
3713 L4_MABX_B.Abs_i = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_p);
3714
3715 /* Product: '<S814>/Product1' incorporates:
3716 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3717 */
3718 L4_MABX_B.Product1_k = L4_MABX_B.Abs_i *
3719 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val;
3720
3721 /* Sum: '<S814>/Add1' */
3722 L4_MABX_B.Add1_e = L4_MABX_B.Init_g + L4_MABX_B.Product1_k;
3723
3724 /* MinMax: '<S814>/MinMax2' incorporates:
3725 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3726 */
3727 DeltaTime = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3728 PositionFinalLimited = L4_MABX_B.Add1_e;
3729 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3730 PositionFinalLimited = DeltaTime;
3731 }
3732
3733 L4_MABX_B.MinMax2 = PositionFinalLimited;
3734
3735 /* End of MinMax: '<S814>/MinMax2' */
3736
3737 /* Abs: '<S814>/Abs1' incorporates:
3738 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_DOWN'
3739 */
3740 L4_MABX_B.Abs1 = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_m);
3741
3742 /* Product: '<S814>/Product2' incorporates:
3743 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3744 */
3745 L4_MABX_B.Product2_n = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val *
3746 L4_MABX_B.Abs1;
3747
3748 /* Sum: '<S814>/Subtract1' */
3749 L4_MABX_B.Subtract1_d = L4_MABX_B.Init_g - L4_MABX_B.Product2_n;
3750
3751 /* MinMax: '<S814>/MinMax1' */
3752 DeltaTime = L4_MABX_B.MinMax2;
3753 PositionFinalLimited = L4_MABX_B.Subtract1_d;
3754 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3755 PositionFinalLimited = DeltaTime;
3756 }
3757
3758 L4_MABX_B.MinMax1_h3 = PositionFinalLimited;
3759
3760 /* End of MinMax: '<S814>/MinMax1' */
3761
3762 /* Outputs for Atomic SubSystem: '<S814>/If_Then_Else' */
3763 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_i,
3764 L4_MABX_B.If_Then_Else_f.Switch, L4_MABX_B.MinMax1_h3,
3765 &L4_MABX_B.If_Then_Else_ev);
3766
3767 /* End of Outputs for SubSystem: '<S814>/If_Then_Else' */
3768
3769 /* Sum: '<S742>/Subtract' incorporates:
3770 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3771 */
3772 L4_MABX_B.Subtract_b = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL -
3773 L4_MABX_B.If_Then_Else_ev.Switch;
3774
3775 /* Abs: '<S742>/Abs' */
3776 L4_MABX_B.Abs_k = fabs(L4_MABX_B.Subtract_b);
3777
3778 /* RelationalOperator: '<S742>/Relational Operator1' incorporates:
3779 * Constant: '<S742>/Constant1'
3780 */
3781 L4_MABX_B.RelationalOperator1_l = (L4_MABX_B.Abs_k <=
3782 L4_MABX_P.Constant1_Value_ge);
3783
3784 /* Logic: '<S812>/Logical Operator3' */
3785 L4_MABX_B.LogicalOperator3_a = !L4_MABX_B.RelationalOperator1_l;
3786
3787 /* UnitDelay: '<S812>/Unit_Delay' */
3788 L4_MABX_B.Unit_Delay_gi = L4_MABX_DW.Unit_Delay_DSTATE_jl;
3789
3790 /* Logic: '<S812>/Logical Operator1' */
3791 L4_MABX_B.LogicalOperator1_es = (L4_MABX_B.LogicalOperator6_b ||
3792 L4_MABX_B.Unit_Delay_gi);
3793
3794 /* Logic: '<S812>/Logical Operator' */
3795 L4_MABX_B.LogicalOperator_cj = (L4_MABX_B.LogicalOperator3_a &&
3796 L4_MABX_B.LogicalOperator1_es);
3797
3798 /* Logic: '<S812>/Logical Operator2' */
3799 L4_MABX_B.LogicalOperator2_f = !L4_MABX_B.LogicalOperator_cj;
3800
3801 /* RelationalOperator: '<S815>/min_relop' incorporates:
3802 * Constant: '<S735>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3803 * Constant: '<S815>/min_val'
3804 */
3805 L4_MABX_B.min_relop_a = (L4_MABX_P.CheckStaticLowerBound_min_g <=
3806 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_p);
3807
3808 /* Assertion: '<S815>/Assertion' */
3809 utAssert(L4_MABX_B.min_relop_a);
3810 } else {
3811 if (L4_MABX_DW.Slew_at_event_MODE) {
3812 /* Disable for Outport: '<S742>/F_Out_slewing' */
3813 L4_MABX_B.LogicalOperator_cj = L4_MABX_P.F_Out_slewing_Y0_d;
3814
3815 /* Disable for Outport: '<S742>/Out' */
3816 L4_MABX_B.If_Then_Else_ev.Switch = L4_MABX_P.Out_Y0_l;
3817 L4_MABX_DW.Slew_at_event_MODE = false;
3818 }
3819 }
3820
3821 /* End of Constant: '<S735>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3822 /* End of Outputs for SubSystem: '<S735>/Slew_at_event' */
3823
3824 /* Outputs for Atomic SubSystem: '<S735>/If_Then_Else' */
3825 L4_MABX_If_Then_Else_o(L4_MABX_B.LogicalOperator_cj,
3826 L4_MABX_B.If_Then_Else_ev.Switch, L4_MABX_B.If_Then_Else_f.Switch);
3827
3828 /* End of Outputs for SubSystem: '<S735>/If_Then_Else' */
3829
3830 /* S-Function (rti_commonblock): '<S727>/S-Function1' */
3831 /* This comment workarounds a code generation problem */
3832 {
3833 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
3834 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
3835 ADC_TP4_CH3,
3836 (dsfloat *)&L4_MABX_B.SFunction1);
3837 }
3838
3839 /* Gain: '<S411>/KL15_Monitor' */
3840 L4_MABX_B.IgnitionKeySwitch_voltage = L4_MABX_P.KL15_Monitor_Gain *
3841 L4_MABX_B.SFunction1;
3842
3843 /* Outputs for Enabled SubSystem: '<S502>/CCVS1_31' incorporates:
3844 * EnablePort: '<S503>/Enable'
3845 */
3846 /* Constant: '<S425>/Constant' */
3847 if (L4_MABX_P.Constant_Value_gx) {
3848 /* S-Function (rti_commonblock): '<S503>/S-Function1' */
3849 /* This comment workarounds a code generation problem */
3850
3851 /* dSPACE RTICAN RX Message Block: "CCVS1_31" Id:419361073 */
3852 {
3853 UInt32 *CAN_Msg;
3854 static dsfloat time_old = 0.0;
3855
3856 /* Read status and timestamp info (previous message) */
3857 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp !=
3858 time_old) {
3859 /* ... save timestamp info for the calculation of the RX status
3860 during the consecutive sample hit*/
3861 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].
3862 timestamp;
3863
3864 /* ... set the processed flag to one */
3865 L4_MABX_B.SFunction1_o21_d = 1.0;
3866 L4_MABX_B.SFunction1_o22_pp = (real_T)
3867 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp;
3868 L4_MABX_B.SFunction1_o23_m = (real_T)
3869 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].deltatime;
3870 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].data;
3871
3872 /* Decode CAN message */
3873 {
3874 {
3875 rtican_Signal_t CAN_Sgn;
3876
3877 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
3878 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3879 CAN_Sgn.UnsignedSgn &= 0x00000003;
3880 L4_MABX_B.SFunction1_o1_na = ((real_T) CAN_Sgn.UnsignedSgn);
3881
3882 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
3883 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3884 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3885 CAN_Sgn.UnsignedSgn &= 0x00000003;
3886 L4_MABX_B.SFunction1_o2_hi = ((real_T) CAN_Sgn.UnsignedSgn);
3887
3888 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
3889 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3890 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3891 CAN_Sgn.UnsignedSgn &= 0x00000003;
3892 L4_MABX_B.SFunction1_o3_p5 = ((real_T) CAN_Sgn.UnsignedSgn);
3893
3894 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
3895 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3896 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3897 CAN_Sgn.UnsignedSgn &= 0x00000003;
3898 L4_MABX_B.SFunction1_o4_li = ((real_T) CAN_Sgn.UnsignedSgn);
3899
3900 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
3901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
3902 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
3903 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
3904 L4_MABX_B.SFunction1_o5_i4 = 0.00390625 * ( ((real_T)
3905 CAN_Sgn.UnsignedSgn) );
3906
3907 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
3908 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3909 CAN_Sgn.UnsignedSgn &= 0x00000003;
3910 L4_MABX_B.SFunction1_o6_bq = ((real_T) CAN_Sgn.UnsignedSgn);
3911
3912 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
3913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3914 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3915 CAN_Sgn.UnsignedSgn &= 0x00000003;
3916 L4_MABX_B.SFunction1_o7_id = ((real_T) CAN_Sgn.UnsignedSgn);
3917
3918 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
3919 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3920 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3921 CAN_Sgn.UnsignedSgn &= 0x00000003;
3922 L4_MABX_B.SFunction1_o8_k = ((real_T) CAN_Sgn.UnsignedSgn);
3923
3924 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
3925 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3926 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3927 CAN_Sgn.UnsignedSgn &= 0x00000003;
3928 L4_MABX_B.SFunction1_o9_k1o = ((real_T) CAN_Sgn.UnsignedSgn);
3929
3930 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
3931 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3932 CAN_Sgn.UnsignedSgn &= 0x00000003;
3933 L4_MABX_B.SFunction1_o10_h = ((real_T) CAN_Sgn.UnsignedSgn);
3934
3935 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
3936 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3937 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3938 CAN_Sgn.UnsignedSgn &= 0x00000003;
3939 L4_MABX_B.SFunction1_o11_i = ((real_T) CAN_Sgn.UnsignedSgn);
3940
3941 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
3942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3943 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3944 CAN_Sgn.UnsignedSgn &= 0x00000003;
3945 L4_MABX_B.SFunction1_o12_i = ((real_T) CAN_Sgn.UnsignedSgn);
3946
3947 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
3948 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3949 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3950 CAN_Sgn.UnsignedSgn &= 0x00000003;
3951 L4_MABX_B.SFunction1_o13_i = ((real_T) CAN_Sgn.UnsignedSgn);
3952
3953 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
3954 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
3955 CAN_Sgn.UnsignedSgn &= 0x000000FF;
3956 L4_MABX_B.SFunction1_o14_b = ((real_T) CAN_Sgn.UnsignedSgn);
3957
3958 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
3959 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3960 CAN_Sgn.UnsignedSgn &= 0x0000001F;
3961 L4_MABX_B.SFunction1_o15_j = ((real_T) CAN_Sgn.UnsignedSgn);
3962
3963 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
3964 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3965 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
3966 CAN_Sgn.UnsignedSgn &= 0x00000007;
3967 L4_MABX_B.SFunction1_o16_a = ((real_T) CAN_Sgn.UnsignedSgn);
3968
3969 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
3970 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3971 CAN_Sgn.UnsignedSgn &= 0x00000003;
3972 L4_MABX_B.SFunction1_o17_m = ((real_T) CAN_Sgn.UnsignedSgn);
3973
3974 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
3975 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3976 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3977 CAN_Sgn.UnsignedSgn &= 0x00000003;
3978 L4_MABX_B.SFunction1_o18_b = ((real_T) CAN_Sgn.UnsignedSgn);
3979
3980 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
3981 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3982 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3983 CAN_Sgn.UnsignedSgn &= 0x00000003;
3984 L4_MABX_B.SFunction1_o19_j = ((real_T) CAN_Sgn.UnsignedSgn);
3985
3986 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
3987 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3988 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3989 CAN_Sgn.UnsignedSgn &= 0x00000003;
3990 L4_MABX_B.SFunction1_o20_oo = ((real_T) CAN_Sgn.UnsignedSgn);
3991 }
3992 }
3993 } else {
3994 /* set RX status to 0 because no new message has arrived */
3995 L4_MABX_B.SFunction1_o21_d = 0.0;
3996 }
3997 }
3998 }
3999
4000 /* End of Constant: '<S425>/Constant' */
4001 /* End of Outputs for SubSystem: '<S502>/CCVS1_31' */
4002
4003 /* Outputs for Enabled SubSystem: '<S513>/EBC2_0B1' incorporates:
4004 * EnablePort: '<S514>/Enable'
4005 */
4006 /* Constant: '<S430>/Enable_RX_EBC2_0B' */
4007 if (L4_MABX_P.Enable_RX_EBC2_0B_Value) {
4008 /* S-Function (rti_commonblock): '<S514>/S-Function1' */
4009 /* This comment workarounds a code generation problem */
4010
4011 /* dSPACE RTICAN RX Message Block: "EBC2_0B" Id:419348235 */
4012 {
4013 UInt32 *CAN_Msg;
4014 static dsfloat time_old = 0.0;
4015
4016 /* Read status and timestamp info (previous message) */
4017 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp !=
4018 time_old) {
4019 /* ... save timestamp info for the calculation of the RX status
4020 during the consecutive sample hit*/
4021 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].
4022 timestamp;
4023
4024 /* ... set the processed flag to one */
4025 L4_MABX_B.SFunction1_o8_nz = 1.0;
4026 L4_MABX_B.SFunction1_o9_p2 = (real_T)
4027 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp;
4028 L4_MABX_B.SFunction1_o10_k = (real_T)
4029 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].deltatime;
4030 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].data;
4031
4032 /* Decode CAN message */
4033 {
4034 {
4035 rtican_Signal_t CAN_Sgn;
4036
4037 /* ...... "FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
4038 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4039 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4040 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4041 L4_MABX_B.SFunction1_o1_h54 = 0.00390625 * ( ((real_T)
4042 CAN_Sgn.UnsignedSgn) );
4043
4044 /* ...... "RelativeSpeedFrontAxleLeftWheel" (16|8, standard signal, unsigned int, little endian) */
4045 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4046 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4047 L4_MABX_B.SFunction1_o2_ge = -7.8125 + ( 0.0625 * ( ((real_T)
4048 CAN_Sgn.UnsignedSgn) ) );
4049
4050 /* ...... "RlativeSpeedFrontAxleRightWheel" (24|8, standard signal, unsigned int, little endian) */
4051 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4052 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4053 L4_MABX_B.SFunction1_o3_gl = -7.8125 + ( 0.0625 * ( ((real_T)
4054 CAN_Sgn.UnsignedSgn) ) );
4055
4056 /* ...... "RelativeSpeedRearAxle1LeftWheel" (32|8, standard signal, unsigned int, little endian) */
4057 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4058 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4059 L4_MABX_B.SFunction1_o4_gu = -7.8125 + ( 0.0625 * ( ((real_T)
4060 CAN_Sgn.UnsignedSgn) ) );
4061
4062 /* ...... "RlativeSpeedRearAxle1RightWheel" (40|8, standard signal, unsigned int, little endian) */
4063 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4064 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4065 L4_MABX_B.SFunction1_o5_dv = -7.8125 + ( 0.0625 * ( ((real_T)
4066 CAN_Sgn.UnsignedSgn) ) );
4067
4068 /* ...... "RelativeSpeedRearAxle2LeftWheel" (48|8, standard signal, unsigned int, little endian) */
4069 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4070 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4071 L4_MABX_B.SFunction1_o6_m = -7.8125 + ( 0.0625 * ( ((real_T)
4072 CAN_Sgn.UnsignedSgn) ) );
4073
4074 /* ...... "RlativeSpeedRearAxle2RightWheel" (56|8, standard signal, unsigned int, little endian) */
4075 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4076 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4077 L4_MABX_B.SFunction1_o7_l = -7.8125 + ( 0.0625 * ( ((real_T)
4078 CAN_Sgn.UnsignedSgn) ) );
4079 }
4080 }
4081 } else {
4082 /* set RX status to 0 because no new message has arrived */
4083 L4_MABX_B.SFunction1_o8_nz = 0.0;
4084 }
4085 }
4086 }
4087
4088 /* End of Constant: '<S430>/Enable_RX_EBC2_0B' */
4089 /* End of Outputs for SubSystem: '<S513>/EBC2_0B1' */
4090
4091 /* Outputs for Enabled SubSystem: '<S571>/HRW_0B' incorporates:
4092 * EnablePort: '<S572>/Enable'
4093 */
4094 /* Constant: '<S437>/Enable_HRW_RX_0B' */
4095 if (L4_MABX_P.Enable_HRW_RX_0B_Value) {
4096 /* S-Function (rti_commonblock): '<S572>/S-Function1' */
4097 /* This comment workarounds a code generation problem */
4098
4099 /* dSPACE RTICAN RX Message Block: "HRW_0B" Id:150892043 */
4100 {
4101 UInt32 *CAN_Msg;
4102 static dsfloat time_old = 0.0;
4103
4104 /* Read status and timestamp info (previous message) */
4105 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp !=
4106 time_old) {
4107 /* ... save timestamp info for the calculation of the RX status
4108 during the consecutive sample hit*/
4109 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].
4110 timestamp;
4111
4112 /* ... set the processed flag to one */
4113 L4_MABX_B.SFunction1_o5_i1 = 1.0;
4114 L4_MABX_B.SFunction1_o6_a = (real_T)
4115 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp;
4116 L4_MABX_B.SFunction1_o7_dc = (real_T)
4117 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].deltatime;
4118 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].data;
4119
4120 /* Decode CAN message */
4121 {
4122 {
4123 rtican_Signal_t CAN_Sgn;
4124
4125 /* ...... "FrontAxleLeftWheelSpeed" (0|16, standard signal, unsigned int, little endian) */
4126 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4127 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4128 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4129 L4_MABX_B.SFunction1_o1_br = 0.00390625 * ( ((real_T)
4130 CAN_Sgn.UnsignedSgn) );
4131
4132 /* ...... "FrontAxleRightWheelSpeed" (16|16, standard signal, unsigned int, little endian) */
4133 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4134 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4135 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4136 L4_MABX_B.SFunction1_o2_oc = 0.00390625 * ( ((real_T)
4137 CAN_Sgn.UnsignedSgn) );
4138
4139 /* ...... "RearAxleLeftWheelSpeed" (32|16, standard signal, unsigned int, little endian) */
4140 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4141 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4142 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4143 L4_MABX_B.SFunction1_o3_ca = 0.00390625 * ( ((real_T)
4144 CAN_Sgn.UnsignedSgn) );
4145
4146 /* ...... "RearAxleRightWheelSpeed" (48|16, standard signal, unsigned int, little endian) */
4147 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4148 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
4149 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4150 L4_MABX_B.SFunction1_o4_ex = 0.00390625 * ( ((real_T)
4151 CAN_Sgn.UnsignedSgn) );
4152 }
4153 }
4154 } else {
4155 /* set RX status to 0 because no new message has arrived */
4156 L4_MABX_B.SFunction1_o5_i1 = 0.0;
4157 }
4158 }
4159 }
4160
4161 /* End of Constant: '<S437>/Enable_HRW_RX_0B' */
4162 /* End of Outputs for SubSystem: '<S571>/HRW_0B' */
4163
4164 /* Outputs for Enabled SubSystem: '<S511>/EBC1_0B' incorporates:
4165 * EnablePort: '<S512>/Enable'
4166 */
4167 /* Constant: '<S429>/Constant1' */
4168 if (L4_MABX_P.Constant1_Value_f4e) {
4169 /* S-Function (rti_commonblock): '<S512>/S-Function1' */
4170 /* This comment workarounds a code generation problem */
4171
4172 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382219 */
4173 {
4174 UInt32 *CAN_Msg;
4175 static dsfloat time_old = 0.0;
4176
4177 /* Read status and timestamp info (previous message) */
4178 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp !=
4179 time_old) {
4180 /* ... save timestamp info for the calculation of the RX status
4181 during the consecutive sample hit*/
4182 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].
4183 timestamp;
4184
4185 /* ... set the processed flag to one */
4186 L4_MABX_B.SFunction1_o23_n = 1.0;
4187 L4_MABX_B.SFunction1_o24_p = (real_T)
4188 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp;
4189 L4_MABX_B.SFunction1_o25_f = (real_T)
4190 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].deltatime;
4191 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].data;
4192
4193 /* Decode CAN message */
4194 {
4195 {
4196 rtican_Signal_t CAN_Sgn;
4197
4198 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
4199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4200 CAN_Sgn.UnsignedSgn &= 0x00000003;
4201 L4_MABX_B.SFunction1_o1_l2 = ((real_T) CAN_Sgn.UnsignedSgn);
4202
4203 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
4204 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4205 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4206 CAN_Sgn.UnsignedSgn &= 0x00000003;
4207 L4_MABX_B.SFunction1_o2_cu = ((real_T) CAN_Sgn.UnsignedSgn);
4208
4209 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
4210 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4211 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4212 CAN_Sgn.UnsignedSgn &= 0x00000003;
4213 L4_MABX_B.SFunction1_o3_ln = ((real_T) CAN_Sgn.UnsignedSgn);
4214
4215 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
4216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4217 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4218 CAN_Sgn.UnsignedSgn &= 0x00000003;
4219 L4_MABX_B.SFunction1_o4_ow = ((real_T) CAN_Sgn.UnsignedSgn);
4220
4221 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
4222 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4223 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4224 L4_MABX_B.SFunction1_o5_lu = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4225
4226 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
4227 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4228 CAN_Sgn.UnsignedSgn &= 0x00000003;
4229 L4_MABX_B.SFunction1_o6_ho = ((real_T) CAN_Sgn.UnsignedSgn);
4230
4231 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
4232 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4233 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4234 CAN_Sgn.UnsignedSgn &= 0x00000003;
4235 L4_MABX_B.SFunction1_o7_as = ((real_T) CAN_Sgn.UnsignedSgn);
4236
4237 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
4238 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4239 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4240 CAN_Sgn.UnsignedSgn &= 0x00000003;
4241 L4_MABX_B.SFunction1_o8_f = ((real_T) CAN_Sgn.UnsignedSgn);
4242
4243 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
4244 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4245 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4246 CAN_Sgn.UnsignedSgn &= 0x00000003;
4247 L4_MABX_B.SFunction1_o9_o = ((real_T) CAN_Sgn.UnsignedSgn);
4248
4249 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
4250 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4251 CAN_Sgn.UnsignedSgn &= 0x00000003;
4252 L4_MABX_B.SFunction1_o10_b = ((real_T) CAN_Sgn.UnsignedSgn);
4253
4254 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
4255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4256 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4257 CAN_Sgn.UnsignedSgn &= 0x00000003;
4258 L4_MABX_B.SFunction1_o11_b = ((real_T) CAN_Sgn.UnsignedSgn);
4259
4260 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
4261 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4262 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4263 CAN_Sgn.UnsignedSgn &= 0x00000003;
4264 L4_MABX_B.SFunction1_o12_m = ((real_T) CAN_Sgn.UnsignedSgn);
4265
4266 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
4267 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4268 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4269 CAN_Sgn.UnsignedSgn &= 0x00000003;
4270 L4_MABX_B.SFunction1_o13_b = ((real_T) CAN_Sgn.UnsignedSgn);
4271
4272 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
4273 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4274 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4275 L4_MABX_B.SFunction1_o14_a = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4276
4277 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
4278 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4279 CAN_Sgn.UnsignedSgn &= 0x00000003;
4280 L4_MABX_B.SFunction1_o15_m = ((real_T) CAN_Sgn.UnsignedSgn);
4281
4282 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
4283 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4284 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4285 CAN_Sgn.UnsignedSgn &= 0x00000003;
4286 L4_MABX_B.SFunction1_o16_l = ((real_T) CAN_Sgn.UnsignedSgn);
4287
4288 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
4289 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4290 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4291 CAN_Sgn.UnsignedSgn &= 0x00000003;
4292 L4_MABX_B.SFunction1_o17_g = ((real_T) CAN_Sgn.UnsignedSgn);
4293
4294 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
4295 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4296 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4297 CAN_Sgn.UnsignedSgn &= 0x00000003;
4298 L4_MABX_B.SFunction1_o18_k = ((real_T) CAN_Sgn.UnsignedSgn);
4299
4300 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
4301 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4302 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4303 L4_MABX_B.SFunction1_o19_m = ((real_T) CAN_Sgn.UnsignedSgn);
4304
4305 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
4306 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4307 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4308 CAN_Sgn.UnsignedSgn &= 0x00000003;
4309 L4_MABX_B.SFunction1_o20_o = ((real_T) CAN_Sgn.UnsignedSgn);
4310
4311 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
4312 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4313 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4314 CAN_Sgn.UnsignedSgn &= 0x00000003;
4315 L4_MABX_B.SFunction1_o21_m = ((real_T) CAN_Sgn.UnsignedSgn);
4316
4317 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
4318 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4319 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4320 CAN_Sgn.UnsignedSgn &= 0x00000003;
4321 L4_MABX_B.SFunction1_o22_m = ((real_T) CAN_Sgn.UnsignedSgn);
4322 }
4323 }
4324 } else {
4325 /* set RX status to 0 because no new message has arrived */
4326 L4_MABX_B.SFunction1_o23_n = 0.0;
4327 }
4328 }
4329 }
4330
4331 /* End of Constant: '<S429>/Constant1' */
4332 /* End of Outputs for SubSystem: '<S511>/EBC1_0B' */
4333
4334 /* Outputs for Enabled SubSystem: '<S566>/ETC2_031' incorporates:
4335 * EnablePort: '<S567>/Enable'
4336 */
4337 /* Constant: '<S435>/Enable_RX_ETC2_03' */
4338 if (L4_MABX_P.Enable_RX_ETC2_03_Value) {
4339 /* S-Function (rti_commonblock): '<S567>/S-Function1' */
4340 /* This comment workarounds a code generation problem */
4341
4342 /* dSPACE RTICAN RX Message Block: "ETC2_03" Id:418383107 */
4343 {
4344 UInt32 *CAN_Msg;
4345 static dsfloat time_old = 0.0;
4346
4347 /* Read status and timestamp info (previous message) */
4348 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp !=
4349 time_old) {
4350 /* ... save timestamp info for the calculation of the RX status
4351 during the consecutive sample hit*/
4352 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].
4353 timestamp;
4354
4355 /* ... set the processed flag to one */
4356 L4_MABX_B.SFunction1_o4_o4 = 1.0;
4357 L4_MABX_B.SFunction1_o5_e = (real_T)
4358 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp;
4359 L4_MABX_B.SFunction1_o6_io = (real_T)
4360 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].deltatime;
4361 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].data;
4362
4363 /* Decode CAN message */
4364 {
4365 {
4366 rtican_Signal_t CAN_Sgn;
4367
4368 /* ...... "SPN524_TransSelectedGear" (0|8, standard signal, unsigned int, little endian) */
4369 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4370 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4371 L4_MABX_B.SFunction1_o1_ewm = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4372 );
4373
4374 /* ...... "SPN526_TransActualGearRatio" (8|16, standard signal, unsigned int, little endian) */
4375 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4376 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
4377 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4378 L4_MABX_B.SFunction1_o2_fs = 0.001 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4379 );
4380
4381 /* ...... "SPN523_TransCurrentGear" (24|8, standard signal, unsigned int, little endian) */
4382 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4383 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4384 L4_MABX_B.SFunction1_o3_ah3 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4385 );
4386 }
4387 }
4388 } else {
4389 /* set RX status to 0 because no new message has arrived */
4390 L4_MABX_B.SFunction1_o4_o4 = 0.0;
4391 }
4392 }
4393 }
4394
4395 /* End of Constant: '<S435>/Enable_RX_ETC2_03' */
4396 /* End of Outputs for SubSystem: '<S566>/ETC2_031' */
4397
4398 /* DataTypeConversion: '<S566>/Data Type Conversion1' */
4399 L4_MABX_B.SPN524_TransSelectedGear = L4_MABX_B.SFunction1_o1_ewm;
4400
4401 /* DataTypeConversion: '<S566>/Data Type Conversion2' */
4402 L4_MABX_B.SPN523_TransCurrentGear = L4_MABX_B.SFunction1_o3_ah3;
4403
4404 /* DataTypeConversion: '<S566>/Data Type Conversion3' */
4405 L4_MABX_B.SPN526_TransActualGearRatio = L4_MABX_B.SFunction1_o2_fs;
4406
4407 /* Outputs for Enabled SubSystem: '<S560>/EEC1_001' incorporates:
4408 * EnablePort: '<S561>/Enable'
4409 */
4410 /* Constant: '<S432>/Enable_RX_EEC1_00' */
4411 if (L4_MABX_P.Enable_RX_EEC1_00_Value) {
4412 /* S-Function (rti_commonblock): '<S561>/S-Function1' */
4413 /* This comment workarounds a code generation problem */
4414
4415 /* dSPACE RTICAN RX Message Block: "EEC1_00" Id:217056256 */
4416 {
4417 UInt32 *CAN_Msg;
4418 static dsfloat time_old = 0.0;
4419
4420 /* Read status and timestamp info (previous message) */
4421 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp !=
4422 time_old) {
4423 /* ... save timestamp info for the calculation of the RX status
4424 during the consecutive sample hit*/
4425 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].
4426 timestamp;
4427
4428 /* ... set the processed flag to one */
4429 L4_MABX_B.SFunction1_o9_kn = 1.0;
4430 L4_MABX_B.SFunction1_o10_m4 = (real_T)
4431 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp;
4432 L4_MABX_B.SFunction1_o11_h = (real_T)
4433 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].deltatime;
4434 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].data;
4435
4436 /* Decode CAN message */
4437 {
4438 {
4439 rtican_Signal_t CAN_Sgn;
4440
4441 /* ...... "EngTorqueMode" (0|4, standard signal, unsigned int, little endian) */
4442 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4443 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4444 L4_MABX_B.SFunction1_o1_jh = ((real_T) CAN_Sgn.UnsignedSgn);
4445
4446 /* ...... "ActlEngPrcntTrqueHighResolution" (4|4, standard signal, unsigned int, little endian) */
4447 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4448 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4449 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4450 L4_MABX_B.SFunction1_o2_ec = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4451 );
4452
4453 /* ...... "DriversDemandEngPercentTorque" (8|8, standard signal, unsigned int, little endian) */
4454 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4455 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4456 L4_MABX_B.SFunction1_o3_ir = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4457 );
4458
4459 /* ...... "ActualEngPercentTorque" (16|8, standard signal, unsigned int, little endian) */
4460 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4461 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4462 L4_MABX_B.SFunction1_o4_ga = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4463 );
4464
4465 /* ...... "EngSpeed" (24|16, standard signal, unsigned int, little endian) */
4466 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4467 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
4468 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4469 L4_MABX_B.SFunction1_o5_dc = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4470 );
4471
4472 /* ...... "SrcAddrssOfCtrllngDvcFrEngCntrl" (40|8, standard signal, unsigned int, little endian) */
4473 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4474 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4475 L4_MABX_B.SFunction1_o6_e1 = ((real_T) CAN_Sgn.UnsignedSgn);
4476
4477 /* ...... "EngStarterMode" (48|4, standard signal, unsigned int, little endian) */
4478 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4479 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4480 L4_MABX_B.SFunction1_o7_dh = ((real_T) CAN_Sgn.UnsignedSgn);
4481
4482 /* ...... "EngDemandPercentTorque" (56|8, standard signal, unsigned int, little endian) */
4483 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4484 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4485 L4_MABX_B.SFunction1_o8_el = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4486 );
4487 }
4488 }
4489 } else {
4490 /* set RX status to 0 because no new message has arrived */
4491 L4_MABX_B.SFunction1_o9_kn = 0.0;
4492 }
4493 }
4494 }
4495
4496 /* End of Constant: '<S432>/Enable_RX_EEC1_00' */
4497 /* End of Outputs for SubSystem: '<S560>/EEC1_001' */
4498
4499 /* Outputs for Enabled SubSystem: '<S564>/EEC3_001' incorporates:
4500 * EnablePort: '<S565>/Enable'
4501 */
4502 /* Constant: '<S434>/Enable_RX_EEC3_00' */
4503 if (L4_MABX_P.Enable_RX_EEC3_00_Value) {
4504 /* S-Function (rti_commonblock): '<S565>/S-Function1' */
4505 /* This comment workarounds a code generation problem */
4506
4507 /* dSPACE RTICAN RX Message Block: "EEC3_00" Id:419356416 */
4508 {
4509 UInt32 *CAN_Msg;
4510 static dsfloat time_old = 0.0;
4511
4512 /* Read status and timestamp info (previous message) */
4513 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp !=
4514 time_old) {
4515 /* ... save timestamp info for the calculation of the RX status
4516 during the consecutive sample hit*/
4517 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].
4518 timestamp;
4519
4520 /* ... set the processed flag to one */
4521 L4_MABX_B.SFunction1_o3_mg = 1.0;
4522 L4_MABX_B.SFunction1_o4_l3 = (real_T)
4523 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp;
4524 L4_MABX_B.SFunction1_o5_dw = (real_T)
4525 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].deltatime;
4526 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].data;
4527
4528 /* Decode CAN message */
4529 {
4530 {
4531 rtican_Signal_t CAN_Sgn;
4532
4533 /* ...... "SPN514_NominalFrictionPercentTorque" (0|8, standard signal, unsigned int, little endian) */
4534 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4535 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4536 L4_MABX_B.SFunction1_o1_ixk = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4537 );
4538
4539 /* ...... "SPN2978_EstEngParasiticLossesPercentTorque" (32|8, standard signal, unsigned int, little endian) */
4540 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4541 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4542 L4_MABX_B.SFunction1_o2_gf = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4543 );
4544 }
4545 }
4546 } else {
4547 /* set RX status to 0 because no new message has arrived */
4548 L4_MABX_B.SFunction1_o3_mg = 0.0;
4549 }
4550 }
4551 }
4552
4553 /* End of Constant: '<S434>/Enable_RX_EEC3_00' */
4554 /* End of Outputs for SubSystem: '<S564>/EEC3_001' */
4555
4556 /* DataTypeConversion: '<S564>/Data Type Conversion2' */
4557 L4_MABX_B.SPN514_NominalFrictionPercentTo = L4_MABX_B.SFunction1_o1_ixk;
4558
4559 /* DataTypeConversion: '<S564>/Data Type Conversion1' */
4560 L4_MABX_B.SPN2978_EstEngParasiticLossesPe = L4_MABX_B.SFunction1_o2_gf;
4561
4562 /* Outputs for Enabled SubSystem: '<S507>/CVW_0B1' incorporates:
4563 * EnablePort: '<S508>/Enable'
4564 */
4565 /* Constant: '<S427>/Constant' */
4566 if (L4_MABX_P.Constant_Value_hp) {
4567 /* S-Function (rti_commonblock): '<S508>/S-Function1' */
4568 /* This comment workarounds a code generation problem */
4569
4570 /* dSPACE RTICAN RX Message Block: "CVW_0B" Id:419328011 */
4571 {
4572 UInt32 *CAN_Msg;
4573 static dsfloat time_old = 0.0;
4574
4575 /* Read status and timestamp info (previous message) */
4576 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp !=
4577 time_old) {
4578 /* ... save timestamp info for the calculation of the RX status
4579 during the consecutive sample hit*/
4580 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].
4581 timestamp;
4582
4583 /* ... set the processed flag to one */
4584 L4_MABX_B.SFunction1_o2_lt = 1.0;
4585 L4_MABX_B.SFunction1_o3_a1 = (real_T)
4586 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp;
4587 L4_MABX_B.SFunction1_o4_aq = (real_T)
4588 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].deltatime;
4589 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].data;
4590
4591 /* Decode CAN message */
4592 {
4593 {
4594 rtican_Signal_t CAN_Sgn;
4595
4596 /* ...... "SPN1760_GrossCombinationVehicleWeight" (16|16, standard signal, unsigned int, little endian) */
4597 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4598 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4599 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4600 L4_MABX_B.SFunction1_o1_fs = 10 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4601 }
4602 }
4603 } else {
4604 /* set RX status to 0 because no new message has arrived */
4605 L4_MABX_B.SFunction1_o2_lt = 0.0;
4606 }
4607 }
4608 }
4609
4610 /* End of Constant: '<S427>/Constant' */
4611 /* End of Outputs for SubSystem: '<S507>/CVW_0B1' */
4612
4613 /* DataTypeConversion: '<S507>/Data Type Conversion1' */
4614 L4_MABX_B.SPN1760_GrossCombinationVehicle = L4_MABX_B.SFunction1_o1_fs;
4615
4616 /* Outputs for Enabled SubSystem: '<S488>/ACC1_2A_' incorporates:
4617 * EnablePort: '<S489>/Enable'
4618 */
4619 /* Constant: '<S418>/Constant' */
4620 if (L4_MABX_P.Constant_Value_bm) {
4621 /* S-Function (rti_commonblock): '<S489>/S-Function1' */
4622 /* This comment workarounds a code generation problem */
4623
4624 /* dSPACE RTICAN RX Message Block: "ACC1_2A" Id:285110058 */
4625 {
4626 UInt32 *CAN_Msg;
4627 static dsfloat time_old = 0.0;
4628
4629 /* Read status and timestamp info (previous message) */
4630 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp !=
4631 time_old) {
4632 /* ... save timestamp info for the calculation of the RX status
4633 during the consecutive sample hit*/
4634 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].
4635 timestamp;
4636
4637 /* ... set the processed flag to one */
4638 L4_MABX_B.SFunction1_o11_o = 1.0;
4639 L4_MABX_B.SFunction1_o12_h = (real_T)
4640 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp;
4641 L4_MABX_B.SFunction1_o13_ip = (real_T)
4642 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].deltatime;
4643 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].data;
4644
4645 /* Decode CAN message */
4646 {
4647 {
4648 rtican_Signal_t CAN_Sgn;
4649
4650 /* ...... "SpeedOfForwardVehicle" (0|8, standard signal, unsigned int, little endian) */
4651 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4652 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4653 L4_MABX_B.SFunction1_o1_o5 = ((real_T) CAN_Sgn.UnsignedSgn);
4654
4655 /* ...... "DistanceToForwardVehicle" (8|8, standard signal, unsigned int, little endian) */
4656 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4657 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4658 L4_MABX_B.SFunction1_o2_l4 = ((real_T) CAN_Sgn.UnsignedSgn);
4659
4660 /* ...... "AdaptiveCruiseCtrlSetSpeed" (16|8, standard signal, unsigned int, little endian) */
4661 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4662 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4663 L4_MABX_B.SFunction1_o3_lm3 = ((real_T) CAN_Sgn.UnsignedSgn);
4664
4665 /* ...... "AdaptiveCruiseCtrlMode" (24|3, standard signal, unsigned int, little endian) */
4666 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4667 CAN_Sgn.UnsignedSgn &= 0x00000007;
4668 L4_MABX_B.SFunction1_o4_go = ((real_T) CAN_Sgn.UnsignedSgn);
4669
4670 /* ...... "AdptveCruiseCtrlSetDistanceMode" (27|3, standard signal, unsigned int, little endian) */
4671 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4672 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
4673 CAN_Sgn.UnsignedSgn &= 0x00000007;
4674 L4_MABX_B.SFunction1_o5_hv = ((real_T) CAN_Sgn.UnsignedSgn);
4675
4676 /* ...... "RoadCurvature" (32|16, standard signal, unsigned int, little endian) */
4677 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4678 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4679 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4680 L4_MABX_B.SFunction1_o6_p3 = -250 + ( 0.0078125 * ( ((real_T)
4681 CAN_Sgn.UnsignedSgn) ) );
4682
4683 /* ...... "ACCTargetDetected" (48|2, standard signal, unsigned int, little endian) */
4684 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4685 CAN_Sgn.UnsignedSgn &= 0x00000003;
4686 L4_MABX_B.SFunction1_o7_lo = ((real_T) CAN_Sgn.UnsignedSgn);
4687
4688 /* ...... "ACCSystemShutoffWarning" (50|2, standard signal, unsigned int, little endian) */
4689 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4690 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4691 CAN_Sgn.UnsignedSgn &= 0x00000003;
4692 L4_MABX_B.SFunction1_o8_kw = ((real_T) CAN_Sgn.UnsignedSgn);
4693
4694 /* ...... "ACCDistanceAlertSignal" (52|2, standard signal, unsigned int, little endian) */
4695 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4696 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4697 CAN_Sgn.UnsignedSgn &= 0x00000003;
4698 L4_MABX_B.SFunction1_o9_c = ((real_T) CAN_Sgn.UnsignedSgn);
4699
4700 /* ...... "ForwardCollisionWarning" (54|2, standard signal, unsigned int, little endian) */
4701 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4702 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4703 CAN_Sgn.UnsignedSgn &= 0x00000003;
4704 L4_MABX_B.SFunction1_o10_nu = ((real_T) CAN_Sgn.UnsignedSgn);
4705 }
4706 }
4707 } else {
4708 /* set RX status to 0 because no new message has arrived */
4709 L4_MABX_B.SFunction1_o11_o = 0.0;
4710 }
4711 }
4712 }
4713
4714 /* End of Constant: '<S418>/Constant' */
4715 /* End of Outputs for SubSystem: '<S488>/ACC1_2A_' */
4716
4717 /* DataTypeConversion: '<S488>/Data Type Conversion12' */
4718 L4_MABX_B.ACCDistanceAlertSignal = L4_MABX_B.SFunction1_o9_c;
4719
4720 /* DataTypeConversion: '<S488>/Data Type Conversion13' */
4721 L4_MABX_B.ForwardCollisionWarning = L4_MABX_B.SFunction1_o10_nu;
4722
4723 /* RelationalOperator: '<S473>/Operator' incorporates:
4724 * Constant: '<S416>/Constant'
4725 * Constant: '<S471>/Constant'
4726 */
4727 L4_MABX_B.Operator_nh = (L4_MABX_P.Constant_Value_hw ==
4728 L4_MABX_P.Constant_Value_lw);
4729
4730 /* Outputs for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' incorporates:
4731 * EnablePort: '<S472>/Enable'
4732 */
4733 if (L4_MABX_B.Operator_nh) {
4734 /* S-Function (rti_commonblock): '<S472>/S-Function1' */
4735 /* This comment workarounds a code generation problem */
4736
4737 /* dSPACE RTICAN RX Message Block: "TPCM_FF_00" Id:485293824 */
4738 {
4739 UInt32 *CAN_Msg;
4740 static dsfloat time_old = 0.0;
4741
4742 /* Read status and timestamp info (previous message) */
4743 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp !=
4744 time_old) {
4745 /* ... save timestamp info for the calculation of the RX status
4746 during the consecutive sample hit*/
4747 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].
4748 timestamp;
4749
4750 /* ... set the processed flag to one */
4751 L4_MABX_B.SFunction1_o9_bh = 1.0;
4752 L4_MABX_B.SFunction1_o10_mc = (real_T)
4753 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp;
4754 L4_MABX_B.SFunction1_o11_ow = (real_T)
4755 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].deltatime;
4756 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].data;
4757
4758 /* Decode CAN message */
4759 {
4760 {
4761 rtican_Signal_t CAN_Sgn;
4762
4763 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
4764 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4765 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4766 L4_MABX_B.SFunction1_o1_mv = ((real_T) CAN_Sgn.UnsignedSgn);
4767
4768 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
4769 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4770 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4771 L4_MABX_B.SFunction1_o2_ep = ((real_T) CAN_Sgn.UnsignedSgn);
4772
4773 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
4774 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4775 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4776 L4_MABX_B.SFunction1_o3_nh = ((real_T) CAN_Sgn.UnsignedSgn);
4777
4778 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
4779 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4780 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4781 L4_MABX_B.SFunction1_o4_g0 = ((real_T) CAN_Sgn.UnsignedSgn);
4782
4783 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
4784 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4785 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4786 L4_MABX_B.SFunction1_o5_lf = ((real_T) CAN_Sgn.UnsignedSgn);
4787
4788 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
4789 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4790 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4791 L4_MABX_B.SFunction1_o6_l = ((real_T) CAN_Sgn.UnsignedSgn);
4792
4793 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
4794 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4795 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4796 L4_MABX_B.SFunction1_o7_ou = ((real_T) CAN_Sgn.UnsignedSgn);
4797
4798 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
4799 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4800 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4801 L4_MABX_B.SFunction1_o8_lu = ((real_T) CAN_Sgn.UnsignedSgn);
4802 }
4803 }
4804 } else {
4805 /* set RX status to 0 because no new message has arrived */
4806 L4_MABX_B.SFunction1_o9_bh = 0.0;
4807 }
4808 }
4809 }
4810
4811 /* End of Outputs for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
4812
4813 /* DataTypeConversion: '<S470>/Data Type Conversion' */
4814 PositionFinalLimited = L4_MABX_B.SFunction1_o1_mv;
4815 if (PositionFinalLimited < 256.0) {
4816 if (PositionFinalLimited >= 0.0) {
4817 starting_index = (uint8_T)PositionFinalLimited;
4818 } else {
4819 starting_index = 0U;
4820 }
4821 } else {
4822 starting_index = MAX_uint8_T;
4823 }
4824
4825 L4_MABX_B.DataTypeConversion_jd = starting_index;
4826
4827 /* End of DataTypeConversion: '<S470>/Data Type Conversion' */
4828
4829 /* DataTypeConversion: '<S470>/Data Type Conversion1' */
4830 PositionFinalLimited = L4_MABX_B.SFunction1_o2_ep;
4831 if (PositionFinalLimited < 256.0) {
4832 if (PositionFinalLimited >= 0.0) {
4833 starting_index = (uint8_T)PositionFinalLimited;
4834 } else {
4835 starting_index = 0U;
4836 }
4837 } else {
4838 starting_index = MAX_uint8_T;
4839 }
4840
4841 L4_MABX_B.DataTypeConversion1_fg = starting_index;
4842
4843 /* End of DataTypeConversion: '<S470>/Data Type Conversion1' */
4844
4845 /* DataTypeConversion: '<S470>/Data Type Conversion2' */
4846 PositionFinalLimited = L4_MABX_B.SFunction1_o3_nh;
4847 if (PositionFinalLimited < 256.0) {
4848 if (PositionFinalLimited >= 0.0) {
4849 starting_index = (uint8_T)PositionFinalLimited;
4850 } else {
4851 starting_index = 0U;
4852 }
4853 } else {
4854 starting_index = MAX_uint8_T;
4855 }
4856
4857 L4_MABX_B.DataTypeConversion2_mw = starting_index;
4858
4859 /* End of DataTypeConversion: '<S470>/Data Type Conversion2' */
4860
4861 /* DataTypeConversion: '<S470>/Data Type Conversion3' */
4862 PositionFinalLimited = L4_MABX_B.SFunction1_o4_g0;
4863 if (PositionFinalLimited < 256.0) {
4864 if (PositionFinalLimited >= 0.0) {
4865 starting_index = (uint8_T)PositionFinalLimited;
4866 } else {
4867 starting_index = 0U;
4868 }
4869 } else {
4870 starting_index = MAX_uint8_T;
4871 }
4872
4873 L4_MABX_B.DataTypeConversion3_en = starting_index;
4874
4875 /* End of DataTypeConversion: '<S470>/Data Type Conversion3' */
4876
4877 /* DataTypeConversion: '<S470>/Data Type Conversion4' */
4878 PositionFinalLimited = L4_MABX_B.SFunction1_o5_lf;
4879 if (PositionFinalLimited < 256.0) {
4880 if (PositionFinalLimited >= 0.0) {
4881 starting_index = (uint8_T)PositionFinalLimited;
4882 } else {
4883 starting_index = 0U;
4884 }
4885 } else {
4886 starting_index = MAX_uint8_T;
4887 }
4888
4889 L4_MABX_B.DataTypeConversion4_g = starting_index;
4890
4891 /* End of DataTypeConversion: '<S470>/Data Type Conversion4' */
4892
4893 /* DataTypeConversion: '<S470>/Data Type Conversion5' */
4894 PositionFinalLimited = L4_MABX_B.SFunction1_o6_l;
4895 if (PositionFinalLimited < 256.0) {
4896 if (PositionFinalLimited >= 0.0) {
4897 starting_index = (uint8_T)PositionFinalLimited;
4898 } else {
4899 starting_index = 0U;
4900 }
4901 } else {
4902 starting_index = MAX_uint8_T;
4903 }
4904
4905 L4_MABX_B.DataTypeConversion5_j = starting_index;
4906
4907 /* End of DataTypeConversion: '<S470>/Data Type Conversion5' */
4908
4909 /* DataTypeConversion: '<S470>/Data Type Conversion6' */
4910 PositionFinalLimited = L4_MABX_B.SFunction1_o7_ou;
4911 if (PositionFinalLimited < 256.0) {
4912 if (PositionFinalLimited >= 0.0) {
4913 starting_index = (uint8_T)PositionFinalLimited;
4914 } else {
4915 starting_index = 0U;
4916 }
4917 } else {
4918 starting_index = MAX_uint8_T;
4919 }
4920
4921 L4_MABX_B.DataTypeConversion6_hv = starting_index;
4922
4923 /* End of DataTypeConversion: '<S470>/Data Type Conversion6' */
4924
4925 /* DataTypeConversion: '<S470>/Data Type Conversion7' */
4926 PositionFinalLimited = L4_MABX_B.SFunction1_o8_lu;
4927 if (PositionFinalLimited < 256.0) {
4928 if (PositionFinalLimited >= 0.0) {
4929 starting_index = (uint8_T)PositionFinalLimited;
4930 } else {
4931 starting_index = 0U;
4932 }
4933 } else {
4934 starting_index = MAX_uint8_T;
4935 }
4936
4937 L4_MABX_B.DataTypeConversion7_of = starting_index;
4938
4939 /* End of DataTypeConversion: '<S470>/Data Type Conversion7' */
4940
4941 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
4942 L4_MABX_B.RawData[0] = L4_MABX_B.DataTypeConversion_jd;
4943 L4_MABX_B.RawData[1] = L4_MABX_B.DataTypeConversion1_fg;
4944 L4_MABX_B.RawData[2] = L4_MABX_B.DataTypeConversion2_mw;
4945 L4_MABX_B.RawData[3] = L4_MABX_B.DataTypeConversion3_en;
4946 L4_MABX_B.RawData[4] = L4_MABX_B.DataTypeConversion4_g;
4947 L4_MABX_B.RawData[5] = L4_MABX_B.DataTypeConversion5_j;
4948 L4_MABX_B.RawData[6] = L4_MABX_B.DataTypeConversion6_hv;
4949 L4_MABX_B.RawData[7] = L4_MABX_B.DataTypeConversion7_of;
4950
4951 /* DataTypeConversion: '<S464>/Data Type Conversion' */
4952 for (i = 0; i < 8; i++) {
4953 L4_MABX_B.DataTypeConversion_g5[i] = L4_MABX_B.RawData[i];
4954 }
4955
4956 /* End of DataTypeConversion: '<S464>/Data Type Conversion' */
4957
4958 /* RelationalOperator: '<S690>/Operator' incorporates:
4959 * Constant: '<S464>/Constant3'
4960 */
4961 L4_MABX_B.Operator_jx = (L4_MABX_B.DataTypeConversion_g5[0] ==
4962 L4_MABX_P.Constant3_Value_m);
4963
4964 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_BAM' incorporates:
4965 * EnablePort: '<S682>/Enable'
4966 */
4967 if (L4_MABX_B.Operator_jx) {
4968 /* SignalConversion: '<S693>/Signal Conversion' */
4969 L4_MABX_B.SPN2556_ControlByte_ix = L4_MABX_B.DataTypeConversion_g5[0];
4970
4971 /* DataTypeConversion: '<S694>/Data Type Conversion' */
4972 L4_MABX_B.DataTypeConversion_af = L4_MABX_B.DataTypeConversion_g5[1];
4973
4974 /* DataTypeConversion: '<S694>/Data Type Conversion1' */
4975 L4_MABX_B.DataTypeConversion1_nq = L4_MABX_B.DataTypeConversion_g5[2];
4976
4977 /* ArithShift: '<S694>/Shift Arithmetic2' */
4978 L4_MABX_B.ShiftArithmetic2_p = (uint16_T)(L4_MABX_B.DataTypeConversion1_nq <<
4979 8);
4980
4981 /* S-Function (sfix_bitop): '<S697>/Operator' */
4982 L4_MABX_B.Operator_lpw = (uint16_T)(L4_MABX_B.DataTypeConversion_af |
4983 L4_MABX_B.ShiftArithmetic2_p);
4984
4985 /* DataTypeConversion: '<S697>/DataType' */
4986 L4_MABX_B.DataType_o5 = L4_MABX_B.Operator_lpw;
4987
4988 /* SignalConversion: '<S695>/Signal Conversion' */
4989 L4_MABX_B.SPN2568_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_g5[3];
4990
4991 /* DataTypeConversion: '<S696>/Data Type Conversion' */
4992 L4_MABX_B.DataTypeConversion_iz = L4_MABX_B.DataTypeConversion_g5[5];
4993
4994 /* DataTypeConversion: '<S696>/Data Type Conversion1' */
4995 L4_MABX_B.DataTypeConversion1_c3 = L4_MABX_B.DataTypeConversion_g5[6];
4996
4997 /* DataTypeConversion: '<S696>/Data Type Conversion2' */
4998 L4_MABX_B.DataTypeConversion2_f5 = L4_MABX_B.DataTypeConversion_g5[7];
4999
5000 /* ArithShift: '<S696>/Shift Arithmetic1' */
5001 L4_MABX_B.ShiftArithmetic1_p = L4_MABX_B.DataTypeConversion1_c3 << 8;
5002
5003 /* ArithShift: '<S696>/Shift Arithmetic2' */
5004 L4_MABX_B.ShiftArithmetic2_ox = L4_MABX_B.DataTypeConversion2_f5 << 16;
5005
5006 /* S-Function (sfix_bitop): '<S698>/Operator' */
5007 L4_MABX_B.Operator_h = L4_MABX_B.DataTypeConversion_iz |
5008 L4_MABX_B.ShiftArithmetic1_p | L4_MABX_B.ShiftArithmetic2_ox;
5009
5010 /* DataTypeConversion: '<S698>/DataType' */
5011 L4_MABX_B.DataType_oo = L4_MABX_B.Operator_h;
5012 }
5013
5014 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_BAM' */
5015
5016 /* RelationalOperator: '<S482>/Operator' incorporates:
5017 * Constant: '<S417>/Constant'
5018 * Constant: '<S480>/Constant'
5019 */
5020 L4_MABX_B.Operator_p2 = (L4_MABX_P.Constant_Value_ek ==
5021 L4_MABX_P.Constant_Value_ko);
5022
5023 /* Outputs for Enabled SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' incorporates:
5024 * EnablePort: '<S481>/Enable'
5025 */
5026 if (L4_MABX_B.Operator_p2) {
5027 /* S-Function (rti_commonblock): '<S481>/S-Function1' */
5028 /* This comment workarounds a code generation problem */
5029
5030 /* dSPACE RTICAN RX Message Block: "TPDT_FF_00" Id:485228288 */
5031 {
5032 UInt32 *CAN_Msg;
5033 static dsfloat time_old = 0.0;
5034
5035 /* Read status and timestamp info (previous message) */
5036 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp !=
5037 time_old) {
5038 /* ... save timestamp info for the calculation of the RX status
5039 during the consecutive sample hit*/
5040 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].
5041 timestamp;
5042
5043 /* ... set the processed flag to one */
5044 L4_MABX_B.SFunction1_o9_pl = 1.0;
5045 L4_MABX_B.SFunction1_o10_o = (real_T)
5046 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp;
5047 L4_MABX_B.SFunction1_o11_j = (real_T)
5048 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].deltatime;
5049 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].data;
5050
5051 /* Decode CAN message */
5052 {
5053 {
5054 rtican_Signal_t CAN_Sgn;
5055
5056 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
5057 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5058 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5059 L4_MABX_B.SFunction1_o1_dl = ((real_T) CAN_Sgn.UnsignedSgn);
5060
5061 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
5062 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5063 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5064 L4_MABX_B.SFunction1_o2_hd = ((real_T) CAN_Sgn.UnsignedSgn);
5065
5066 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
5067 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5068 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5069 L4_MABX_B.SFunction1_o3_n5 = ((real_T) CAN_Sgn.UnsignedSgn);
5070
5071 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
5072 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5073 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5074 L4_MABX_B.SFunction1_o4_p4 = ((real_T) CAN_Sgn.UnsignedSgn);
5075
5076 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
5077 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5078 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5079 L4_MABX_B.SFunction1_o5_mt = ((real_T) CAN_Sgn.UnsignedSgn);
5080
5081 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
5082 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5083 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5084 L4_MABX_B.SFunction1_o6_d1 = ((real_T) CAN_Sgn.UnsignedSgn);
5085
5086 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
5087 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5088 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5089 L4_MABX_B.SFunction1_o7_dcs = ((real_T) CAN_Sgn.UnsignedSgn);
5090
5091 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
5092 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5093 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5094 L4_MABX_B.SFunction1_o8_m = ((real_T) CAN_Sgn.UnsignedSgn);
5095 }
5096 }
5097 } else {
5098 /* set RX status to 0 because no new message has arrived */
5099 L4_MABX_B.SFunction1_o9_pl = 0.0;
5100 }
5101 }
5102 }
5103
5104 /* End of Outputs for SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' */
5105
5106 /* DataTypeConversion: '<S479>/Data Type Conversion' */
5107 PositionFinalLimited = L4_MABX_B.SFunction1_o1_dl;
5108 if (PositionFinalLimited < 256.0) {
5109 if (PositionFinalLimited >= 0.0) {
5110 starting_index = (uint8_T)PositionFinalLimited;
5111 } else {
5112 starting_index = 0U;
5113 }
5114 } else {
5115 starting_index = MAX_uint8_T;
5116 }
5117
5118 L4_MABX_B.DataTypeConversion_o = starting_index;
5119
5120 /* End of DataTypeConversion: '<S479>/Data Type Conversion' */
5121
5122 /* DataTypeConversion: '<S479>/Data Type Conversion1' */
5123 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hd;
5124 if (PositionFinalLimited < 256.0) {
5125 if (PositionFinalLimited >= 0.0) {
5126 starting_index = (uint8_T)PositionFinalLimited;
5127 } else {
5128 starting_index = 0U;
5129 }
5130 } else {
5131 starting_index = MAX_uint8_T;
5132 }
5133
5134 L4_MABX_B.DataTypeConversion1_djm = starting_index;
5135
5136 /* End of DataTypeConversion: '<S479>/Data Type Conversion1' */
5137
5138 /* DataTypeConversion: '<S479>/Data Type Conversion2' */
5139 PositionFinalLimited = L4_MABX_B.SFunction1_o3_n5;
5140 if (PositionFinalLimited < 256.0) {
5141 if (PositionFinalLimited >= 0.0) {
5142 starting_index = (uint8_T)PositionFinalLimited;
5143 } else {
5144 starting_index = 0U;
5145 }
5146 } else {
5147 starting_index = MAX_uint8_T;
5148 }
5149
5150 L4_MABX_B.DataTypeConversion2_op = starting_index;
5151
5152 /* End of DataTypeConversion: '<S479>/Data Type Conversion2' */
5153
5154 /* DataTypeConversion: '<S479>/Data Type Conversion3' */
5155 PositionFinalLimited = L4_MABX_B.SFunction1_o4_p4;
5156 if (PositionFinalLimited < 256.0) {
5157 if (PositionFinalLimited >= 0.0) {
5158 starting_index = (uint8_T)PositionFinalLimited;
5159 } else {
5160 starting_index = 0U;
5161 }
5162 } else {
5163 starting_index = MAX_uint8_T;
5164 }
5165
5166 L4_MABX_B.DataTypeConversion3_od = starting_index;
5167
5168 /* End of DataTypeConversion: '<S479>/Data Type Conversion3' */
5169
5170 /* DataTypeConversion: '<S479>/Data Type Conversion4' */
5171 PositionFinalLimited = L4_MABX_B.SFunction1_o5_mt;
5172 if (PositionFinalLimited < 256.0) {
5173 if (PositionFinalLimited >= 0.0) {
5174 starting_index = (uint8_T)PositionFinalLimited;
5175 } else {
5176 starting_index = 0U;
5177 }
5178 } else {
5179 starting_index = MAX_uint8_T;
5180 }
5181
5182 L4_MABX_B.DataTypeConversion4_f = starting_index;
5183
5184 /* End of DataTypeConversion: '<S479>/Data Type Conversion4' */
5185
5186 /* DataTypeConversion: '<S479>/Data Type Conversion5' */
5187 PositionFinalLimited = L4_MABX_B.SFunction1_o6_d1;
5188 if (PositionFinalLimited < 256.0) {
5189 if (PositionFinalLimited >= 0.0) {
5190 starting_index = (uint8_T)PositionFinalLimited;
5191 } else {
5192 starting_index = 0U;
5193 }
5194 } else {
5195 starting_index = MAX_uint8_T;
5196 }
5197
5198 L4_MABX_B.DataTypeConversion5_g = starting_index;
5199
5200 /* End of DataTypeConversion: '<S479>/Data Type Conversion5' */
5201
5202 /* DataTypeConversion: '<S479>/Data Type Conversion6' */
5203 PositionFinalLimited = L4_MABX_B.SFunction1_o7_dcs;
5204 if (PositionFinalLimited < 256.0) {
5205 if (PositionFinalLimited >= 0.0) {
5206 starting_index = (uint8_T)PositionFinalLimited;
5207 } else {
5208 starting_index = 0U;
5209 }
5210 } else {
5211 starting_index = MAX_uint8_T;
5212 }
5213
5214 L4_MABX_B.DataTypeConversion6_pe = starting_index;
5215
5216 /* End of DataTypeConversion: '<S479>/Data Type Conversion6' */
5217
5218 /* DataTypeConversion: '<S479>/Data Type Conversion7' */
5219 PositionFinalLimited = L4_MABX_B.SFunction1_o8_m;
5220 if (PositionFinalLimited < 256.0) {
5221 if (PositionFinalLimited >= 0.0) {
5222 starting_index = (uint8_T)PositionFinalLimited;
5223 } else {
5224 starting_index = 0U;
5225 }
5226 } else {
5227 starting_index = MAX_uint8_T;
5228 }
5229
5230 L4_MABX_B.DataTypeConversion7_b = starting_index;
5231
5232 /* End of DataTypeConversion: '<S479>/Data Type Conversion7' */
5233
5234 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
5235 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_o;
5236 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_djm;
5237 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_op;
5238 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_od;
5239 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_f;
5240 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_g;
5241 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_pe;
5242 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_b;
5243
5244 /* DataTypeConversion: '<S465>/Data Type Conversion' */
5245 for (i = 0; i < 8; i++) {
5246 L4_MABX_B.DataTypeConversion_cc[i] = L4_MABX_B.RawData_j[i];
5247 }
5248
5249 /* End of DataTypeConversion: '<S465>/Data Type Conversion' */
5250
5251 /* S-Function (rti_commonblock): '<S823>/S-Function1' */
5252
5253 /* This comment workarounds a code generation problem */
5254
5255 /* End of Outputs for S-Function (rti_commonblock): '<S823>/S-Function1' */
5256
5257 /* RateTransition: '<S412>/Rate Transition' */
5258 switch (L4_MABX_DW.RateTransition_write_buf) {
5259 case 0:
5260 L4_MABX_DW.RateTransition_read_buf = 1;
5261 break;
5262
5263 case 1:
5264 L4_MABX_DW.RateTransition_read_buf = 0;
5265 break;
5266
5267 default:
5268 L4_MABX_DW.RateTransition_read_buf = L4_MABX_DW.RateTransition_last_buf_wr;
5269 break;
5270 }
5271
5272 if (L4_MABX_DW.RateTransition_read_buf != 0) {
5273 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer1;
5274 } else {
5275 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer0;
5276 }
5277
5278 L4_MABX_DW.RateTransition_read_buf = -1;
5279
5280 /* End of RateTransition: '<S412>/Rate Transition' */
5281
5282 /* DataTypeConversion: '<S479>/Data Type Conversion8' */
5283 L4_MABX_B.RX_status = (L4_MABX_B.SFunction1_o9_pl != 0.0);
5284
5285 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
5286 L4_MABX_B.RX_status_l = L4_MABX_B.RX_status;
5287
5288 /* RelationalOperator: '<S517>/Operator' incorporates:
5289 * Constant: '<S431>/Constant2'
5290 */
5291 L4_MABX_B.Operator_fl = (L4_MABX_B.DataType_oo == L4_MABX_P.Constant2_Value_mx);
5292
5293 /* Logic: '<S431>/Logical Operator' */
5294 L4_MABX_B.LogicalOperator_mj = (L4_MABX_B.RX_status_l && L4_MABX_B.Operator_fl);
5295
5296 /* Outputs for Enabled SubSystem: '<S431>/CAN_RX_EC1_00' incorporates:
5297 * EnablePort: '<S515>/Enable'
5298 */
5299 if (L4_MABX_B.LogicalOperator_mj) {
5300 /* UnitDelay: '<S515>/Unit Delay' */
5301 for (i = 0; i < 39; i++) {
5302 L4_MABX_B.UnitDelay_g[i] = L4_MABX_DW.UnitDelay_DSTATE_ie[i];
5303 }
5304
5305 /* End of UnitDelay: '<S515>/Unit Delay' */
5306
5307 /* MATLAB Function: '<S515>/serialize_tpdt' */
5308 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_EC1_00/CAN_RX_EC1_00/serialize_tpdt': '<S519>:1' */
5309 /* '<S519>:1:9' */
5310 if (L4_MABX_B.DataTypeConversion_cc[0] > 1) {
5311 /* '<S519>:1:6' */
5312 /* '<S519>:1:7' */
5313 for (i = 0; i < 39; i++) {
5314 L4_MABX_B.Data_l[i] = L4_MABX_B.UnitDelay_g[i];
5315 }
5316 } else {
5317 /* '<S519>:1:9' */
5318 for (i = 0; i < 39; i++) {
5319 L4_MABX_B.Data_l[i] = MAX_uint8_T;
5320 }
5321 }
5322
5323 /* '<S519>:1:11' */
5324 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_cc[0]);
5325 if ((uint32_T)i > 255U) {
5326 i = 255;
5327 }
5328
5329 tmp = i - 6U;
5330 if (tmp > (uint32_T)i) {
5331 tmp = 0U;
5332 }
5333
5334 i = (int32_T)tmp;
5335 starting_index = (uint8_T)i;
5336
5337 /* '<S519>:1:12' */
5338 L4_MABX_B.Data_l[starting_index - 1] = L4_MABX_B.DataTypeConversion_cc[1];
5339 L4_MABX_B.Data_l[starting_index] = L4_MABX_B.DataTypeConversion_cc[2];
5340 L4_MABX_B.Data_l[starting_index + 1] = L4_MABX_B.DataTypeConversion_cc[3];
5341 L4_MABX_B.Data_l[starting_index + 2] = L4_MABX_B.DataTypeConversion_cc[4];
5342 L4_MABX_B.Data_l[starting_index + 3] = L4_MABX_B.DataTypeConversion_cc[5];
5343 L4_MABX_B.Data_l[starting_index + 4] = L4_MABX_B.DataTypeConversion_cc[6];
5344 L4_MABX_B.Data_l[starting_index + 5] = L4_MABX_B.DataTypeConversion_cc[7];
5345
5346 /* '<S519>:1:13' */
5347 L4_MABX_B.RX_status_o05 = (L4_MABX_B.DataTypeConversion_cc[0] ==
5348 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5349
5350 /* End of MATLAB Function: '<S515>/serialize_tpdt' */
5351
5352 /* Outputs for Enabled SubSystem: '<S515>/Decode' incorporates:
5353 * EnablePort: '<S518>/Enable'
5354 */
5355 if (L4_MABX_B.RX_status_o05) {
5356 /* Inport: '<S518>/Inport' */
5357 for (i = 0; i < 39; i++) {
5358 L4_MABX_B.Inport_j[i] = L4_MABX_B.Data_l[i];
5359 }
5360
5361 /* End of Inport: '<S518>/Inport' */
5362
5363 /* Inport: '<S518>/timeStamp' */
5364 L4_MABX_B.timeStamp_e = GLB_Absolute_Timestamp;
5365
5366 /* UnitDelay: '<S518>/Unit_Delay' */
5367 L4_MABX_B.Unit_Delay_o = L4_MABX_DW.Unit_Delay_DSTATE_p;
5368
5369 /* Sum: '<S518>/Subtract' */
5370 L4_MABX_B.Subtract_fe = (real32_T)(L4_MABX_B.timeStamp_e -
5371 L4_MABX_B.Unit_Delay_o);
5372 }
5373
5374 /* End of Outputs for SubSystem: '<S515>/Decode' */
5375 }
5376
5377 /* End of Outputs for SubSystem: '<S431>/CAN_RX_EC1_00' */
5378
5379 /* DataTypeConversion: '<S516>/Data Type Conversion' */
5380 for (i = 0; i < 39; i++) {
5381 L4_MABX_B.DataTypeConversion_nd[i] = L4_MABX_B.Inport_j[i];
5382 }
5383
5384 /* End of DataTypeConversion: '<S516>/Data Type Conversion' */
5385
5386 /* DataTypeConversion: '<S527>/Data Type Conversion' */
5387 L4_MABX_B.DataTypeConversion_c = L4_MABX_B.DataTypeConversion_nd[19];
5388
5389 /* DataTypeConversion: '<S527>/Data Type Conversion1' */
5390 L4_MABX_B.DataTypeConversion1_or = L4_MABX_B.DataTypeConversion_nd[20];
5391
5392 /* ArithShift: '<S527>/Shift Arithmetic' */
5393 L4_MABX_B.ShiftArithmetic = (uint16_T)(L4_MABX_B.DataTypeConversion1_or << 8);
5394
5395 /* S-Function (sfix_bitop): '<S552>/Operator' */
5396 L4_MABX_B.Operator_eo = (uint16_T)(L4_MABX_B.DataTypeConversion_c |
5397 L4_MABX_B.ShiftArithmetic);
5398
5399 /* DataTypeConversion: '<S552>/DataType' */
5400 L4_MABX_B.DataType_p = L4_MABX_B.Operator_eo;
5401
5402 /* DataTypeConversion: '<S527>/Data Type Conversion2' */
5403 L4_MABX_B.SPN544_EngineReferenceTorque = L4_MABX_B.DataType_p;
5404
5405 /* Outputs for Enabled SubSystem: '<S637>/VDC1_0B_' incorporates:
5406 * EnablePort: '<S638>/Enable'
5407 */
5408 /* Constant: '<S451>/Constant' */
5409 if (L4_MABX_P.Constant_Value_dus) {
5410 /* S-Function (rti_commonblock): '<S638>/S-Function1' */
5411 /* This comment workarounds a code generation problem */
5412
5413 /* dSPACE RTICAN RX Message Block: "VDC1_0B" Id:419319563 */
5414 {
5415 UInt32 *CAN_Msg;
5416 static dsfloat time_old = 0.0;
5417
5418 /* Read status and timestamp info (previous message) */
5419 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp !=
5420 time_old) {
5421 /* ... save timestamp info for the calculation of the RX status
5422 during the consecutive sample hit*/
5423 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].
5424 timestamp;
5425
5426 /* ... set the processed flag to one */
5427 L4_MABX_B.SFunction1_o8_p = 1.0;
5428 L4_MABX_B.SFunction1_o9_k = (real_T)
5429 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp;
5430 L4_MABX_B.SFunction1_o10 = (real_T)
5431 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].deltatime;
5432 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].data;
5433
5434 /* Decode CAN message */
5435 {
5436 {
5437 rtican_Signal_t CAN_Sgn;
5438
5439 /* ...... "VDCInformationSignal" (0|2, standard signal, unsigned int, little endian) */
5440 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5441 CAN_Sgn.UnsignedSgn &= 0x00000003;
5442 L4_MABX_B.SFunction1_o1_exz = ((real_T) CAN_Sgn.UnsignedSgn);
5443
5444 /* ...... "VDCFullyOperational" (2|2, standard signal, unsigned int, little endian) */
5445 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5446 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5447 CAN_Sgn.UnsignedSgn &= 0x00000003;
5448 L4_MABX_B.SFunction1_o2_bv = ((real_T) CAN_Sgn.UnsignedSgn);
5449
5450 /* ...... "VDCBrakeLightRq" (4|2, standard signal, unsigned int, little endian) */
5451 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5452 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5453 CAN_Sgn.UnsignedSgn &= 0x00000003;
5454 L4_MABX_B.SFunction1_o3_eo = ((real_T) CAN_Sgn.UnsignedSgn);
5455
5456 /* ...... "ROPEngCtrlActive" (8|2, standard signal, unsigned int, little endian) */
5457 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5458 CAN_Sgn.UnsignedSgn &= 0x00000003;
5459 L4_MABX_B.SFunction1_o4_e2 = ((real_T) CAN_Sgn.UnsignedSgn);
5460
5461 /* ...... "ROPBrakeCtrlActive" (10|2, standard signal, unsigned int, little endian) */
5462 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5463 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5464 CAN_Sgn.UnsignedSgn &= 0x00000003;
5465 L4_MABX_B.SFunction1_o5_g = ((real_T) CAN_Sgn.UnsignedSgn);
5466
5467 /* ...... "YCEngCtrlActive" (12|2, standard signal, unsigned int, little endian) */
5468 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5469 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5470 CAN_Sgn.UnsignedSgn &= 0x00000003;
5471 L4_MABX_B.SFunction1_o6_c = ((real_T) CAN_Sgn.UnsignedSgn);
5472
5473 /* ...... "YCBrakeCtrlActive" (14|2, standard signal, unsigned int, little endian) */
5474 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5475 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5476 CAN_Sgn.UnsignedSgn &= 0x00000003;
5477 L4_MABX_B.SFunction1_o7_k = ((real_T) CAN_Sgn.UnsignedSgn);
5478 }
5479 }
5480 } else {
5481 /* set RX status to 0 because no new message has arrived */
5482 L4_MABX_B.SFunction1_o8_p = 0.0;
5483 }
5484 }
5485 }
5486
5487 /* End of Constant: '<S451>/Constant' */
5488 /* End of Outputs for SubSystem: '<S637>/VDC1_0B_' */
5489
5490 /* Outputs for Enabled SubSystem: '<S639>/VDC2_0B1' incorporates:
5491 * EnablePort: '<S640>/Enable'
5492 */
5493 /* Constant: '<S452>/Constant' */
5494 if (L4_MABX_P.Constant_Value_fb) {
5495 /* S-Function (rti_commonblock): '<S640>/S-Function1' */
5496 /* This comment workarounds a code generation problem */
5497
5498 /* dSPACE RTICAN RX Message Block: "VDC2_0B" Id:418384139 */
5499 {
5500 UInt32 *CAN_Msg;
5501 static dsfloat time_old = 0.0;
5502
5503 /* Read status and timestamp info (previous message) */
5504 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp !=
5505 time_old) {
5506 /* ... save timestamp info for the calculation of the RX status
5507 during the consecutive sample hit*/
5508 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].
5509 timestamp;
5510
5511 /* ... set the processed flag to one */
5512 L4_MABX_B.SFunction1_o7_a = 1.0;
5513 L4_MABX_B.SFunction1_o8_b = (real_T)
5514 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp;
5515 L4_MABX_B.SFunction1_o9 = (real_T)
5516 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].deltatime;
5517 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].data;
5518
5519 /* Decode CAN message */
5520 {
5521 {
5522 rtican_Signal_t CAN_Sgn;
5523
5524 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
5525 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5526 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5527 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5528 SteerWheelAngle = -31.374 + ( 0.0009765625 * ( ((real_T)
5529 CAN_Sgn.UnsignedSgn) ) );
5530
5531 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
5532 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5533 CAN_Sgn.UnsignedSgn &= 0x0000003F;
5534 L4_MABX_B.SFunction1_o2_jf = -32 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
5535
5536 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
5537 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5538 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5539 CAN_Sgn.UnsignedSgn &= 0x00000003;
5540 L4_MABX_B.SFunction1_o3_eg = ((real_T) CAN_Sgn.UnsignedSgn);
5541
5542 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
5543 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5544 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5545 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5546 YawRate = -3.92 + ( 0.0001220703125 * ( ((real_T)
5547 CAN_Sgn.UnsignedSgn) ) );
5548
5549 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
5550 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5551 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
5552 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5553 L4_MABX_B.SFunction1_o5_l = -15.687 + ( 0.00048828125 * ( ((real_T)
5554 CAN_Sgn.UnsignedSgn) ) );
5555
5556 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
5557 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5558 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5559 SPN1810_LongitudinalAcceleration = -12.5 + ( 0.1 * ( ((real_T)
5560 CAN_Sgn.UnsignedSgn) ) );
5561 }
5562 }
5563 } else {
5564 /* set RX status to 0 because no new message has arrived */
5565 L4_MABX_B.SFunction1_o7_a = 0.0;
5566 }
5567 }
5568 }
5569
5570 /* End of Constant: '<S452>/Constant' */
5571 /* End of Outputs for SubSystem: '<S639>/VDC2_0B1' */
5572
5573 /* UnitDelay: '<S644>/Unit_Delay3' */
5574 L4_MABX_B.Unit_Delay3 = L4_MABX_DW.Unit_Delay3_DSTATE;
5575
5576 /* RelationalOperator: '<S645>/Operator' incorporates:
5577 * Constant: '<S454>/Constant2'
5578 */
5579 L4_MABX_B.Operator_ov = (L4_MABX_B.DataType_oo == L4_MABX_P.Constant2_Value_js);
5580
5581 /* Logic: '<S454>/Logical Operator' */
5582 L4_MABX_B.LogicalOperator_ml = (L4_MABX_B.RX_status_l && L4_MABX_B.Operator_ov);
5583
5584 /* Outputs for Enabled SubSystem: '<S454>/CAN_RX_VI_00' incorporates:
5585 * EnablePort: '<S643>/Enable'
5586 */
5587 if (L4_MABX_B.LogicalOperator_ml) {
5588 /* UnitDelay: '<S643>/Unit Delay' */
5589 for (i = 0; i < 17; i++) {
5590 L4_MABX_B.UnitDelay_ar[i] = L4_MABX_DW.UnitDelay_DSTATE_e1[i];
5591 }
5592
5593 /* End of UnitDelay: '<S643>/Unit Delay' */
5594
5595 /* MATLAB Function: '<S643>/serialize_tpdt' */
5596 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_VI_00/CAN_RX_VI_00/serialize_tpdt': '<S647>:1' */
5597 /* '<S647>:1:9' */
5598 if (L4_MABX_B.DataTypeConversion_cc[0] > 1) {
5599 /* '<S647>:1:6' */
5600 /* '<S647>:1:7' */
5601 for (i = 0; i < 17; i++) {
5602 L4_MABX_B.Data[i] = L4_MABX_B.UnitDelay_ar[i];
5603 }
5604 } else {
5605 /* '<S647>:1:9' */
5606 for (i = 0; i < 17; i++) {
5607 L4_MABX_B.Data[i] = MAX_uint8_T;
5608 }
5609 }
5610
5611 /* '<S647>:1:11' */
5612 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_cc[0]);
5613 if ((uint32_T)i > 255U) {
5614 i = 255;
5615 }
5616
5617 tmp = i - 6U;
5618 if (tmp > (uint32_T)i) {
5619 tmp = 0U;
5620 }
5621
5622 i = (int32_T)tmp;
5623 starting_index = (uint8_T)i;
5624
5625 /* '<S647>:1:12' */
5626 L4_MABX_B.Data[starting_index - 1] = L4_MABX_B.DataTypeConversion_cc[1];
5627 L4_MABX_B.Data[starting_index] = L4_MABX_B.DataTypeConversion_cc[2];
5628 L4_MABX_B.Data[starting_index + 1] = L4_MABX_B.DataTypeConversion_cc[3];
5629 L4_MABX_B.Data[starting_index + 2] = L4_MABX_B.DataTypeConversion_cc[4];
5630 L4_MABX_B.Data[starting_index + 3] = L4_MABX_B.DataTypeConversion_cc[5];
5631 L4_MABX_B.Data[starting_index + 4] = L4_MABX_B.DataTypeConversion_cc[6];
5632 L4_MABX_B.Data[starting_index + 5] = L4_MABX_B.DataTypeConversion_cc[7];
5633
5634 /* '<S647>:1:13' */
5635 L4_MABX_B.RX_status_gz = (L4_MABX_B.DataTypeConversion_cc[0] ==
5636 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5637
5638 /* End of MATLAB Function: '<S643>/serialize_tpdt' */
5639
5640 /* Outputs for Enabled SubSystem: '<S643>/Decode' incorporates:
5641 * EnablePort: '<S646>/Enable'
5642 */
5643 if (L4_MABX_B.RX_status_gz) {
5644 /* Inport: '<S646>/Inport' */
5645 for (i = 0; i < 17; i++) {
5646 L4_MABX_B.Inport[i] = L4_MABX_B.Data[i];
5647 }
5648
5649 /* End of Inport: '<S646>/Inport' */
5650
5651 /* Inport: '<S646>/timeStamp' */
5652 L4_MABX_B.timeStamp = GLB_Absolute_Timestamp;
5653
5654 /* UnitDelay: '<S646>/Unit_Delay' */
5655 L4_MABX_B.Unit_Delay_i = L4_MABX_DW.Unit_Delay_DSTATE_a;
5656
5657 /* Sum: '<S646>/Subtract' */
5658 L4_MABX_B.Subtract_ei = (real32_T)(L4_MABX_B.timeStamp -
5659 L4_MABX_B.Unit_Delay_i);
5660 }
5661
5662 /* End of Outputs for SubSystem: '<S643>/Decode' */
5663 }
5664
5665 /* End of Outputs for SubSystem: '<S454>/CAN_RX_VI_00' */
5666
5667 /* DataTypeConversion: '<S644>/Data Type Conversion' */
5668 L4_MABX_B.DataTypeConversion_m1 = L4_MABX_B.Inport[0];
5669
5670 /* DataTypeConversion: '<S644>/Data Type Conversion1' */
5671 L4_MABX_B.DataTypeConversion1_af = L4_MABX_B.Inport[1];
5672
5673 /* DataTypeConversion: '<S644>/Data Type Conversion2' */
5674 L4_MABX_B.DataTypeConversion2_fs = L4_MABX_B.Inport[2];
5675
5676 /* DataTypeConversion: '<S644>/Data Type Conversion3' */
5677 L4_MABX_B.DataTypeConversion3_k5 = L4_MABX_B.Inport[3];
5678
5679 /* DataTypeConversion: '<S644>/Data Type Conversion4' */
5680 L4_MABX_B.DataTypeConversion4_f3 = L4_MABX_B.Inport[4];
5681
5682 /* DataTypeConversion: '<S644>/Data Type Conversion5' */
5683 L4_MABX_B.DataTypeConversion5_gs = L4_MABX_B.Inport[5];
5684
5685 /* DataTypeConversion: '<S644>/Data Type Conversion6' */
5686 L4_MABX_B.DataTypeConversion6_a = L4_MABX_B.Inport[6];
5687
5688 /* DataTypeConversion: '<S644>/Data Type Conversion7' */
5689 L4_MABX_B.DataTypeConversion7_ae = L4_MABX_B.Inport[7];
5690
5691 /* DataTypeConversion: '<S644>/Data Type Conversion8' */
5692 L4_MABX_B.DataTypeConversion8_p5 = L4_MABX_B.Inport[8];
5693
5694 /* DataTypeConversion: '<S644>/Data Type Conversion9' */
5695 L4_MABX_B.DataTypeConversion9_p = L4_MABX_B.Inport[9];
5696
5697 /* DataTypeConversion: '<S644>/Data Type Conversion10' */
5698 L4_MABX_B.DataTypeConversion10_g = L4_MABX_B.Inport[10];
5699
5700 /* DataTypeConversion: '<S644>/Data Type Conversion11' */
5701 L4_MABX_B.DataTypeConversion11_g = L4_MABX_B.Inport[11];
5702
5703 /* DataTypeConversion: '<S644>/Data Type Conversion12' */
5704 L4_MABX_B.DataTypeConversion12 = L4_MABX_B.Inport[12];
5705
5706 /* DataTypeConversion: '<S644>/Data Type Conversion14' */
5707 L4_MABX_B.DataTypeConversion14_p = L4_MABX_B.Inport[13];
5708
5709 /* DataTypeConversion: '<S644>/Data Type Conversion13' */
5710 L4_MABX_B.DataTypeConversion13_o = L4_MABX_B.Inport[14];
5711
5712 /* DataTypeConversion: '<S644>/Data Type Conversion15' */
5713 L4_MABX_B.DataTypeConversion15_f = L4_MABX_B.Inport[15];
5714
5715 /* DataTypeConversion: '<S644>/Data Type Conversion16' */
5716 L4_MABX_B.DataTypeConversion16_o = L4_MABX_B.Inport[16];
5717
5718 /* RelationalOperator: '<S644>/Relational Operator1' incorporates:
5719 * Constant: '<S644>/TRUCK_1571_VIN_CPV'
5720 */
5721 L4_MABX_B.RelationalOperator1_i[0] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[0] !=
5722 L4_MABX_B.DataTypeConversion_m1);
5723 L4_MABX_B.RelationalOperator1_i[1] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[1] !=
5724 L4_MABX_B.DataTypeConversion1_af);
5725 L4_MABX_B.RelationalOperator1_i[2] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[2] !=
5726 L4_MABX_B.DataTypeConversion2_fs);
5727 L4_MABX_B.RelationalOperator1_i[3] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[3] !=
5728 L4_MABX_B.DataTypeConversion3_k5);
5729 L4_MABX_B.RelationalOperator1_i[4] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[4] !=
5730 L4_MABX_B.DataTypeConversion4_f3);
5731 L4_MABX_B.RelationalOperator1_i[5] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[5] !=
5732 L4_MABX_B.DataTypeConversion5_gs);
5733 L4_MABX_B.RelationalOperator1_i[6] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[6] !=
5734 L4_MABX_B.DataTypeConversion6_a);
5735 L4_MABX_B.RelationalOperator1_i[7] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[7] !=
5736 L4_MABX_B.DataTypeConversion7_ae);
5737 L4_MABX_B.RelationalOperator1_i[8] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[8] !=
5738 L4_MABX_B.DataTypeConversion8_p5);
5739 L4_MABX_B.RelationalOperator1_i[9] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[9] !=
5740 L4_MABX_B.DataTypeConversion9_p);
5741 L4_MABX_B.RelationalOperator1_i[10] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[10]
5742 != L4_MABX_B.DataTypeConversion10_g);
5743 L4_MABX_B.RelationalOperator1_i[11] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[11]
5744 != L4_MABX_B.DataTypeConversion11_g);
5745 L4_MABX_B.RelationalOperator1_i[12] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[12]
5746 != L4_MABX_B.DataTypeConversion12);
5747 L4_MABX_B.RelationalOperator1_i[13] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[13]
5748 != L4_MABX_B.DataTypeConversion14_p);
5749 L4_MABX_B.RelationalOperator1_i[14] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[14]
5750 != L4_MABX_B.DataTypeConversion13_o);
5751 L4_MABX_B.RelationalOperator1_i[15] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[15]
5752 != L4_MABX_B.DataTypeConversion15_f);
5753 L4_MABX_B.RelationalOperator1_i[16] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[16]
5754 != L4_MABX_B.DataTypeConversion16_o);
5755
5756 /* Sum: '<S644>/Add' */
5757 tmp = 0U;
5758 for (i = 0; i < 17; i++) {
5759 tmp += L4_MABX_B.RelationalOperator1_i[i];
5760 }
5761
5762 L4_MABX_B.Add_i = (uint8_T)tmp;
5763
5764 /* End of Sum: '<S644>/Add' */
5765
5766 /* RelationalOperator: '<S648>/Compare' incorporates:
5767 * Constant: '<S648>/Constant'
5768 */
5769 L4_MABX_B.Compare_j = (L4_MABX_B.Add_i == L4_MABX_P.Constant_Value_jx);
5770
5771 /* Logic: '<S644>/Logical Operator' */
5772 L4_MABX_B.LogicalOperator_l = (L4_MABX_B.Unit_Delay3 && L4_MABX_B.Compare_j);
5773
5774 /* UnitDelay: '<S644>/Unit_Delay' */
5775 L4_MABX_B.Unit_Delay_g = L4_MABX_DW.Unit_Delay_DSTATE_l;
5776
5777 /* Logic: '<S650>/Logical Operator3' */
5778 L4_MABX_B.LogicalOperator3_m = !L4_MABX_B.Unit_Delay_g;
5779
5780 /* UnitDelay: '<S650>/Unit_Delay' */
5781 L4_MABX_B.Unit_Delay_h = L4_MABX_DW.Unit_Delay_DSTATE_by;
5782
5783 /* Logic: '<S650>/Logical Operator' */
5784 L4_MABX_B.LogicalOperator_h = (L4_MABX_B.LogicalOperator3_m &&
5785 L4_MABX_B.Unit_Delay_h);
5786
5787 /* Logic: '<S650>/Logical Operator1' */
5788 L4_MABX_B.LogicalOperator1_p = (L4_MABX_B.LogicalOperator_l ||
5789 L4_MABX_B.LogicalOperator_h);
5790
5791 /* Outputs for Enabled SubSystem: '<S625>/SSI2_031' incorporates:
5792 * EnablePort: '<S626>/Enable'
5793 */
5794 /* Constant: '<S445>/Constant' */
5795 if (L4_MABX_P.Constant_Value_dq > 0.0) {
5796 /* S-Function (rti_commonblock): '<S626>/S-Function1' */
5797 /* This comment workarounds a code generation problem */
5798
5799 /* dSPACE RTICAN RX Message Block: "SSI2_03" Id:217065731 */
5800 {
5801 UInt32 *CAN_Msg;
5802 static dsfloat time_old = 0.0;
5803
5804 /* Read status and timestamp info (previous message) */
5805 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp !=
5806 time_old) {
5807 /* ... save timestamp info for the calculation of the RX status
5808 during the consecutive sample hit*/
5809 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].
5810 timestamp;
5811
5812 /* ... set the processed flag to one */
5813 L4_MABX_B.SFunction1_o8_iv = 1.0;
5814 L4_MABX_B.SFunction1_o9_n = (real_T)
5815 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp;
5816 L4_MABX_B.SFunction1_o10_d = (real_T)
5817 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].deltatime;
5818 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].data;
5819
5820 /* Decode CAN message */
5821 {
5822 {
5823 rtican_Signal_t CAN_Sgn;
5824
5825 /* ...... "PitchAngleExRange" (0|24, standard signal, unsigned int, little endian) */
5826 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5827 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5828 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
5829 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5830 L4_MABX_B.SFunction1_o1_l0 = -250 + ( 3.0517578125E-5 * ( ((real_T)
5831 CAN_Sgn.UnsignedSgn) ) );
5832
5833 /* ...... "RollAngleExRange" (24|24, standard signal, unsigned int, little endian) */
5834 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5835 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5836 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[5];
5837 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5838 L4_MABX_B.SFunction1_o2_n1 = -250 + ( 3.0517578125E-5 * ( ((real_T)
5839 CAN_Sgn.UnsignedSgn) ) );
5840
5841 /* ...... "PitchAngleExRangeCompensation" (48|2, standard signal, unsigned int, little endian) */
5842 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5843 CAN_Sgn.UnsignedSgn &= 0x00000003;
5844 L4_MABX_B.SFunction1_o3_n = ((real_T) CAN_Sgn.UnsignedSgn);
5845
5846 /* ...... "PitchAngleExRangeFigureOfMerit" (50|2, standard signal, unsigned int, little endian) */
5847 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5848 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5849 CAN_Sgn.UnsignedSgn &= 0x00000003;
5850 L4_MABX_B.SFunction1_o4_fh = ((real_T) CAN_Sgn.UnsignedSgn);
5851
5852 /* ...... "RollAngleExRangeCompensation" (52|2, standard signal, unsigned int, little endian) */
5853 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5854 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5855 CAN_Sgn.UnsignedSgn &= 0x00000003;
5856 L4_MABX_B.SFunction1_o5_nh = ((real_T) CAN_Sgn.UnsignedSgn);
5857
5858 /* ...... "RollAngleExRangeFigureOfMerit" (54|2, standard signal, unsigned int, little endian) */
5859 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5860 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5861 CAN_Sgn.UnsignedSgn &= 0x00000003;
5862 L4_MABX_B.SFunction1_o6_b = ((real_T) CAN_Sgn.UnsignedSgn);
5863
5864 /* ...... "RllAndPtchExRngMsurementLatency" (56|8, standard signal, unsigned int, little endian) */
5865 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5866 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5867 L4_MABX_B.SFunction1_o7_cz = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5868 }
5869 }
5870 } else {
5871 /* set RX status to 0 because no new message has arrived */
5872 L4_MABX_B.SFunction1_o8_iv = 0.0;
5873 }
5874 }
5875 }
5876
5877 /* End of Constant: '<S445>/Constant' */
5878 /* End of Outputs for SubSystem: '<S625>/SSI2_031' */
5879
5880 /* DataTypeConversion: '<S625>/Data Type Conversion1' */
5881 L4_MABX_B.PitchAngleExRange = L4_MABX_B.SFunction1_o1_l0;
5882
5883 /* Outputs for Enabled SubSystem: '<S616>/PX2_LanePosEst' incorporates:
5884 * EnablePort: '<S619>/Enable'
5885 */
5886 /* Constant: '<S442>/Constant' */
5887 if (L4_MABX_P.Constant_Value_pe) {
5888 /* S-Function (rti_commonblock): '<S619>/S-Function1' */
5889 /* This comment workarounds a code generation problem */
5890
5891 /* dSPACE RTICAN RX Message Block: "PX2_LanePosEst" Id:769 */
5892 {
5893 UInt32 *CAN_Msg;
5894 static dsfloat time_old = 0.0;
5895
5896 /* Read status and timestamp info (previous message) */
5897 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp !=
5898 time_old) {
5899 /* ... save timestamp info for the calculation of the RX status
5900 during the consecutive sample hit*/
5901 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5902
5903 /* ... set the processed flag to one */
5904 L4_MABX_B.SFunction1_o5_dn = 1.0;
5905 L4_MABX_B.SFunction1_o6_dd = (real_T)
5906 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5907 L4_MABX_B.SFunction1_o7_i = (real_T)
5908 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].deltatime;
5909 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].data;
5910
5911 /* Decode CAN message */
5912 {
5913 {
5914 rtican_Signal_t CAN_Sgn;
5915
5916 /* ...... "PX2_LanePosEstAngle" (0|16, standard signal, signed int, little endian) */
5917 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5918 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5919 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5920 if (CAN_Sgn.SignedSgn >> 15) {
5921 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5922 }
5923
5924 L4_MABX_B.SFunction1_o1_ae = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
5925
5926 /* ...... "PX2_LanePosEstNumPoints" (16|8, standard signal, unsigned int, little endian) */
5927 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5928 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5929 L4_MABX_B.SFunction1_o2_iv = ((real_T) CAN_Sgn.UnsignedSgn);
5930
5931 /* ...... "PX2_LanePosEstPosition" (24|16, standard signal, signed int, little endian) */
5932 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5933 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5934 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5935 if (CAN_Sgn.SignedSgn >> 15) {
5936 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5937 }
5938
5939 L4_MABX_B.SFunction1_o3_lm = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
5940
5941 /* ...... "PX2_LanePosEstNumLanes" (40|4, standard signal, unsigned int, little endian) */
5942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5943 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5944 L4_MABX_B.SFunction1_o4_gc2 = ((real_T) CAN_Sgn.UnsignedSgn);
5945 }
5946 }
5947 } else {
5948 /* set RX status to 0 because no new message has arrived */
5949 L4_MABX_B.SFunction1_o5_dn = 0.0;
5950 }
5951 }
5952 }
5953
5954 /* End of Outputs for SubSystem: '<S616>/PX2_LanePosEst' */
5955
5956 /* Outputs for Enabled SubSystem: '<S623>/Bendix_Prop2C2_Status_30' incorporates:
5957 * EnablePort: '<S624>/Enable'
5958 */
5959 /* Constant: '<S444>/Constant' */
5960 if (L4_MABX_P.Constant_Value_gz > 0.0) {
5961 /* S-Function (rti_commonblock): '<S624>/S-Function1' */
5962 /* This comment workarounds a code generation problem */
5963
5964 /* dSPACE RTICAN RX Message Block: "Prop2C2_Status_30" Id:419382064 */
5965 {
5966 UInt32 *CAN_Msg;
5967 static dsfloat time_old = 0.0;
5968
5969 /* Read status and timestamp info (previous message) */
5970 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp !=
5971 time_old) {
5972 /* ... save timestamp info for the calculation of the RX status
5973 during the consecutive sample hit*/
5974 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].
5975 timestamp;
5976
5977 /* ... set the processed flag to one */
5978 L4_MABX_B.SFunction1_o11_e = 1.0;
5979 L4_MABX_B.SFunction1_o12_g = (real_T)
5980 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp;
5981 L4_MABX_B.SFunction1_o13_d = (real_T)
5982 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].deltatime;
5983 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].data;
5984
5985 /* Decode CAN message */
5986 {
5987 {
5988 rtican_Signal_t CAN_Sgn;
5989
5990 /* ...... "PressureP4" (0|8, standard signal, unsigned int, little endian) */
5991 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5992 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5993 L4_MABX_B.SFunction1_o1_bx = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5994
5995 /* ...... "PressureP1" (8|8, standard signal, unsigned int, little endian) */
5996 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5997 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5998 L4_MABX_B.SFunction1_o2_jr = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5999
6000 /* ...... "PressureP21" (16|8, standard signal, unsigned int, little endian) */
6001 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
6002 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6003 L4_MABX_B.SFunction1_o3_j1 = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6004
6005 /* ...... "PressureP22" (24|8, standard signal, unsigned int, little endian) */
6006 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
6007 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6008 L4_MABX_B.SFunction1_o4_ly = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6009
6010 /* ...... "PressureP42" (32|8, standard signal, unsigned int, little endian) */
6011 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6012 CAN_Sgn.UnsignedSgn &= 0x000000FF;
6013 L4_MABX_B.SFunction1_o5_dp = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
6014
6015 /* ...... "XPR1ControlStatus" (40|4, standard signal, unsigned int, little endian) */
6016 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
6017 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6018 L4_MABX_B.SFunction1_o6_dv = ((real_T) CAN_Sgn.UnsignedSgn);
6019
6020 /* ...... "XPR2ControlStatus" (44|4, standard signal, unsigned int, little endian) */
6021 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
6022 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
6023 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6024 L4_MABX_B.SFunction1_o7_k3 = ((real_T) CAN_Sgn.UnsignedSgn);
6025
6026 /* ...... "XPR3ControlStatus" (48|4, standard signal, unsigned int, little endian) */
6027 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
6028 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6029 L4_MABX_B.SFunction1_o8_h = ((real_T) CAN_Sgn.UnsignedSgn);
6030
6031 /* ...... "XPRErrorState" (56|2, standard signal, unsigned int, little endian) */
6032 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6033 CAN_Sgn.UnsignedSgn &= 0x00000003;
6034 L4_MABX_B.SFunction1_o9_fu = ((real_T) CAN_Sgn.UnsignedSgn);
6035
6036 /* ...... "XPRControlMode" (58|4, standard signal, unsigned int, little endian) */
6037 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6038 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
6039 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6040 L4_MABX_B.SFunction1_o10_n = ((real_T) CAN_Sgn.UnsignedSgn);
6041 }
6042 }
6043 } else {
6044 /* set RX status to 0 because no new message has arrived */
6045 L4_MABX_B.SFunction1_o11_e = 0.0;
6046 }
6047 }
6048 }
6049
6050 /* End of Constant: '<S444>/Constant' */
6051 /* End of Outputs for SubSystem: '<S623>/Bendix_Prop2C2_Status_30' */
6052
6053 /* DataTypeConversion: '<S623>/Data Type Conversion15' */
6054 PositionFinalLimited = L4_MABX_B.SFunction1_o10_n;
6055 if (PositionFinalLimited < 256.0) {
6056 if (PositionFinalLimited >= 0.0) {
6057 starting_index = (uint8_T)PositionFinalLimited;
6058 } else {
6059 starting_index = 0U;
6060 }
6061 } else {
6062 starting_index = MAX_uint8_T;
6063 }
6064
6065 L4_MABX_B.DataTypeConversion15_n = starting_index;
6066
6067 /* End of DataTypeConversion: '<S623>/Data Type Conversion15' */
6068
6069 /* DataTypeConversion: '<S623>/Data Type Conversion5' */
6070 L4_MABX_B.XPRControlMode = (ENUM_XPR_CONTROL_MODE_T)
6071 safe_cast_to_ENUM_XPR_CONTROL_M(L4_MABX_B.DataTypeConversion15_n);
6072
6073 /* DataTypeConversion: '<S623>/Data Type Conversion4' */
6074 PositionFinalLimited = L4_MABX_B.SFunction1_o9_fu;
6075 if (PositionFinalLimited < 256.0) {
6076 if (PositionFinalLimited >= 0.0) {
6077 starting_index = (uint8_T)PositionFinalLimited;
6078 } else {
6079 starting_index = 0U;
6080 }
6081 } else {
6082 starting_index = MAX_uint8_T;
6083 }
6084
6085 L4_MABX_B.DataTypeConversion4_bf = starting_index;
6086
6087 /* End of DataTypeConversion: '<S623>/Data Type Conversion4' */
6088
6089 /* DataTypeConversion: '<S623>/Data Type Conversion14' */
6090 L4_MABX_B.XPRErrorState = (ENUM_XPR_ERROR_STATE_T)
6091 safe_cast_to_ENUM_XPR_ERROR_STA(L4_MABX_B.DataTypeConversion4_bf);
6092
6093 /* DataTypeConversion: '<S623>/Data Type Conversion7' */
6094 L4_MABX_B.PressureP1 = L4_MABX_B.SFunction1_o2_jr;
6095
6096 /* DataTypeConversion: '<S623>/Data Type Conversion6' */
6097 L4_MABX_B.PressureP4 = L4_MABX_B.SFunction1_o1_bx;
6098
6099 /* DataTypeConversion: '<S623>/Data Type Conversion11' */
6100 L4_MABX_B.PressureP21 = L4_MABX_B.SFunction1_o3_j1;
6101
6102 /* DataTypeConversion: '<S623>/Data Type Conversion12' */
6103 L4_MABX_B.PressureP22 = L4_MABX_B.SFunction1_o4_ly;
6104
6105 /* DataTypeConversion: '<S623>/Data Type Conversion13' */
6106 L4_MABX_B.PressureP42 = L4_MABX_B.SFunction1_o5_dp;
6107
6108 /* RelationalOperator: '<S655>/Operator' incorporates:
6109 * Constant: '<S461>/Constant3'
6110 * Constant: '<S653>/Constant1'
6111 */
6112 L4_MABX_B.Operator_ox = (PROPB_REAX_CHANNEL_APV ==
6113 L4_MABX_P.Constant1_Value_pm);
6114
6115 /* Outputs for Enabled SubSystem: '<S573>/PropB_REAX_2_13' incorporates:
6116 * EnablePort: '<S575>/Enable'
6117 */
6118 if (L4_MABX_B.Operator_ox) {
6119 /* S-Function (rti_commonblock): '<S575>/S-Function1' */
6120 /* This comment workarounds a code generation problem */
6121
6122 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6123 {
6124 UInt32 *CAN_Msg;
6125 static dsfloat time_old = 0.0;
6126
6127 /* Read status and timestamp info (previous message) */
6128 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6129 time_old) {
6130 /* ... save timestamp info for the calculation of the RX status
6131 during the consecutive sample hit*/
6132 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].
6133 timestamp;
6134
6135 /* ... set the processed flag to one */
6136 L4_MABX_B.SFunction1_o3_c15 = 1.0;
6137 L4_MABX_B.SFunction1_o4_nq = (real_T)
6138 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6139 L4_MABX_B.SFunction1_o5_b = (real_T)
6140 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6141 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].data;
6142
6143 /* Decode CAN message */
6144 {
6145 {
6146 rtican_Signal_t CAN_Sgn;
6147
6148 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6149 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6150 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6151 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6152 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6153 L4_MABX_B.SFunction1_o1_a0 = 0.0439453125 * ( ((real_T)
6154 CAN_Sgn.SignedSgn) );
6155
6156 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6157 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6158 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6159 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6160 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6161 L4_MABX_B.SFunction1_o2_pn = 0.0439453125 * ( ((real_T)
6162 CAN_Sgn.SignedSgn) );
6163 }
6164 }
6165 } else {
6166 /* set RX status to 0 because no new message has arrived */
6167 L4_MABX_B.SFunction1_o3_c15 = 0.0;
6168 }
6169 }
6170 }
6171
6172 /* End of Outputs for SubSystem: '<S573>/PropB_REAX_2_13' */
6173
6174 /* RelationalOperator: '<S654>/Operator' incorporates:
6175 * Constant: '<S461>/Constant3'
6176 * Constant: '<S653>/Constant'
6177 */
6178 L4_MABX_B.Operator_kh = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant_Value_b0);
6179
6180 /* RelationalOperator: '<S656>/Operator' incorporates:
6181 * Constant: '<S461>/Constant3'
6182 * Constant: '<S653>/Constant2'
6183 */
6184 L4_MABX_B.Operator_jg = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant2_Value_c);
6185
6186 /* RelationalOperator: '<S657>/Operator' incorporates:
6187 * Constant: '<S461>/Constant3'
6188 * Constant: '<S653>/Constant3'
6189 */
6190 L4_MABX_B.Operator_jx4 = (PROPB_REAX_CHANNEL_APV ==
6191 L4_MABX_P.Constant3_Value_a);
6192
6193 /* RelationalOperator: '<S658>/Operator' incorporates:
6194 * Constant: '<S461>/Constant3'
6195 * Constant: '<S653>/Constant4'
6196 */
6197 L4_MABX_B.Operator_ck = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant4_Value_e);
6198
6199 /* RelationalOperator: '<S659>/Operator' incorporates:
6200 * Constant: '<S461>/Constant3'
6201 * Constant: '<S653>/Constant5'
6202 */
6203 L4_MABX_B.Operator_of = (PROPB_REAX_CHANNEL_APV ==
6204 L4_MABX_P.Constant5_Value_bi);
6205
6206 /* Logic: '<S461>/OR' */
6207 L4_MABX_B.EnablePropB_ReAX_CAN6 = (L4_MABX_B.Operator_kh ||
6208 L4_MABX_B.Operator_jg || L4_MABX_B.Operator_jx4 || L4_MABX_B.Operator_ck ||
6209 L4_MABX_B.Operator_of);
6210
6211 /* Outputs for Enabled SubSystem: '<S574>/PropB_REAX_2_13' incorporates:
6212 * EnablePort: '<S576>/Enable'
6213 */
6214 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
6215 /* S-Function (rti_commonblock): '<S576>/S-Function1' */
6216 /* This comment workarounds a code generation problem */
6217
6218 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:486535187 */
6219 {
6220 UInt32 *CAN_Msg;
6221 static dsfloat time_old = 0.0;
6222
6223 /* Read status and timestamp info (previous message) */
6224 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].timestamp !=
6225 time_old) {
6226 /* ... save timestamp info for the calculation of the RX status
6227 during the consecutive sample hit*/
6228 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].
6229 timestamp;
6230
6231 /* ... set the processed flag to one */
6232 L4_MABX_B.SFunction1_o3_og = 1.0;
6233 L4_MABX_B.SFunction1_o4_cp = (real_T)
6234 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].timestamp;
6235 L4_MABX_B.SFunction1_o5_g1 = (real_T)
6236 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].deltatime;
6237 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF013].data;
6238
6239 /* Decode CAN message */
6240 {
6241 {
6242 rtican_Signal_t CAN_Sgn;
6243
6244 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6245 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6246 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6247 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6248 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6249 L4_MABX_B.SFunction1_o1_ldo = 0.0439453125 * ( ((real_T)
6250 CAN_Sgn.SignedSgn) );
6251
6252 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6253 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6254 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6255 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6256 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6257 L4_MABX_B.SFunction1_o2_al = 0.0439453125 * ( ((real_T)
6258 CAN_Sgn.SignedSgn) );
6259 }
6260 }
6261 } else {
6262 /* set RX status to 0 because no new message has arrived */
6263 L4_MABX_B.SFunction1_o3_og = 0.0;
6264 }
6265 }
6266 }
6267
6268 /* End of Outputs for SubSystem: '<S574>/PropB_REAX_2_13' */
6269
6270 /* Switch: '<S438>/Switch' */
6271 if (L4_MABX_B.Operator_ox) {
6272 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_a0;
6273 } else {
6274 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_ldo;
6275 }
6276
6277 /* S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
6278
6279 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
6280 {
6281 SimStruct *rts = L4_MABX_M->childSfunctions[3];
6282 ssSetOutputPortSignal(rts, 0, &EthernetLinkStatus);
6283 sfcnOutputs(rts,0);
6284 }
6285
6286 /* Constant: '<S3>/Enable' */
6287 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
6288
6289 /* DiscretePulseGenerator: '<S392>/Heartbeat' */
6290 L4_MABX_B.Heartbeat = (L4_MABX_DW.clockTickCounter < L4_MABX_P.Heartbeat_Duty)
6291 && (L4_MABX_DW.clockTickCounter >= 0) ? L4_MABX_P.Heartbeat_Amp : 0.0;
6292 if (L4_MABX_DW.clockTickCounter >= L4_MABX_P.Heartbeat_Period - 1.0) {
6293 L4_MABX_DW.clockTickCounter = 0;
6294 } else {
6295 L4_MABX_DW.clockTickCounter++;
6296 }
6297
6298 /* End of DiscretePulseGenerator: '<S392>/Heartbeat' */
6299
6300 /* DataTypeConversion: '<S392>/Cast To Boolean' */
6301 L4_MABX_B.Heartbeat_e = (L4_MABX_B.Heartbeat != 0.0);
6302
6303 /* UnitDelay: '<S3>/Unit_Delay' */
6304 L4_MABX_B.EStop_j = L4_MABX_DW.Unit_Delay_79_DSTATE;
6305 L4_MABX_B.EnableSW = L4_MABX_DW.Unit_Delay_80_DSTATE;
6306 L4_MABX_B.EngagePB_g = L4_MABX_DW.Unit_Delay_81_DSTATE;
6307 L4_MABX_B.TargetVelocity_kph_m = L4_MABX_DW.Unit_Delay_139_DSTATE;
6308 L4_MABX_B.CurrentVelocity_kph_k = L4_MABX_DW.Unit_Delay_138_DSTATE;
6309
6310 /* Sum: '<S401>/Subtract' */
6311 L4_MABX_B.Subtract_e = L4_MABX_B.TargetVelocity_kph_m -
6312 L4_MABX_B.CurrentVelocity_kph_k;
6313
6314 /* RelationalOperator: '<S402>/Compare' incorporates:
6315 * Constant: '<S402>/Constant'
6316 */
6317 L4_MABX_B.Compare_fz = (L4_MABX_B.Subtract_e >=
6318 L4_MABX_P.CompareToConstant_const_k);
6319
6320 /* Logic: '<S401>/AND' */
6321 L4_MABX_B.AND = (L4_MABX_B.EngagePB_g && L4_MABX_B.Compare_fz);
6322
6323 /* UnitDelay: '<S3>/Unit_Delay' */
6324 L4_MABX_B.AutonomousEnabled_a = L4_MABX_DW.Unit_Delay_45_DSTATE;
6325 L4_MABX_B.MABX_Mode_h = L4_MABX_DW.Unit_Delay_47_DSTATE;
6326
6327 /* BusCreator: '<S392>/Bus Creator' */
6328 L4_MABX_B.BusCreator.Heartbeat = L4_MABX_B.Heartbeat_e;
6329 L4_MABX_B.BusCreator.EStop = L4_MABX_B.EStop_j;
6330 L4_MABX_B.BusCreator.EnableSW = L4_MABX_B.EnableSW;
6331 L4_MABX_B.BusCreator.EngagePB = L4_MABX_B.AND;
6332 L4_MABX_B.BusCreator.AutonomousEnabled = L4_MABX_B.AutonomousEnabled_a;
6333 L4_MABX_B.BusCreator.MABX_Mode = L4_MABX_B.MABX_Mode_h;
6334
6335 /* S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S400>/Encoder' */
6336 Update_Tx_RTMapsEncode((RTMapsTX*)&L4_MABX_B.BusCreator,
6337 &L4_MABX_B.Encoder_o1[0], &L4_MABX_B.Encoder_o2);
6338
6339 /* S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
6340
6341 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
6342 {
6343 SimStruct *rts = L4_MABX_M->childSfunctions[4];
6344 sfcnOutputs(rts,0);
6345 }
6346
6347 /* DataTypeConversion: '<S391>/Data Type Conversion' */
6348 L4_MABX_B.DataTypeConversion_aq = L4_MABX_B.TCPIP_Com_o2;
6349
6350 /* S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S397>/Decoder' */
6351 Update_Rx_RTMapsDecode((uint8_T*)&L4_MABX_B.TCPIP_Com_o3[0],
6352 L4_MABX_B.DataTypeConversion_aq, L4_MABX_B.TCPIP_Com_o1[2],
6353 &L4_MABX_B.Decoder_o1, &L4_MABX_B.Decoder_o2, &L4_MABX_B.Decoder_o3);
6354
6355 /* RelationalOperator: '<S399>/Compare' incorporates:
6356 * Constant: '<S399>/Constant'
6357 */
6358 L4_MABX_B.Compare_c5 = ((int32_T)L4_MABX_B.Decoder_o1.Heartbeat > (int32_T)
6359 L4_MABX_P.Constant_Value_ap);
6360
6361 /* UnitDelay: '<S398>/Delay Input1' */
6362 L4_MABX_B.Uk1_f = L4_MABX_DW.DelayInput1_DSTATE_n;
6363
6364 /* RelationalOperator: '<S398>/FixPt Relational Operator' */
6365 L4_MABX_B.FixPtRelationalOperator = ((int32_T)L4_MABX_B.Compare_c5 > (int32_T)
6366 L4_MABX_B.Uk1_f);
6367
6368 /* UnitDelay: '<S396>/Unit Delay' */
6369 L4_MABX_B.UnitDelay = L4_MABX_DW.UnitDelay_DSTATE;
6370
6371 /* Switch: '<S396>/Switch' incorporates:
6372 * Constant: '<S396>/Constant1'
6373 */
6374 if (L4_MABX_B.FixPtRelationalOperator) {
6375 L4_MABX_B.Count = L4_MABX_P.Constant1_Value_e;
6376 } else {
6377 /* Sum: '<S396>/Sum' incorporates:
6378 * Constant: '<S396>/Constant'
6379 */
6380 L4_MABX_B.Sum = L4_MABX_P.Constant_Value_l + L4_MABX_B.UnitDelay;
6381 L4_MABX_B.Count = L4_MABX_B.Sum;
6382 }
6383
6384 /* End of Switch: '<S396>/Switch' */
6385
6386 /* Switch: '<S396>/Switch1' incorporates:
6387 * Constant: '<S396>/Constant2'
6388 * Constant: '<S396>/Constant3'
6389 */
6390 if (L4_MABX_B.Count > L4_MABX_P.Switch1_Threshold) {
6391 Heartbeat_Ok = L4_MABX_P.Constant2_Value_eu;
6392 } else {
6393 Heartbeat_Ok = L4_MABX_P.Constant3_Value_f;
6394 }
6395
6396 /* End of Switch: '<S396>/Switch1' */
6397
6398 /* Logic: '<S391>/AND' */
6399 RTMapsOk = ((EthernetLinkStatus != 0.0) && Heartbeat_Ok);
6400
6401 /* Switch: '<S391>/Switch9' incorporates:
6402 * Constant: '<S391>/Failure'
6403 * Constant: '<S391>/No Data'
6404 * Switch: '<S391>/Switch'
6405 * Switch: '<S391>/Switch1'
6406 * Switch: '<S391>/Switch3'
6407 * Switch: '<S391>/Switch4'
6408 * Switch: '<S391>/Switch5'
6409 */
6410 if (RTMapsOk) {
6411 /* Gain: '<S391>/for_logging7' */
6412 L4_MABX_B.SupervisorMode_b = (int8_T)(((uint32_T)L4_MABX_P.for_logging7_Gain
6413 * L4_MABX_B.Decoder_o1.SupervisorMode) >> 7);
6414 SupervisorMode = (uint8_T)L4_MABX_B.SupervisorMode_b;
6415
6416 /* Gain: '<S391>/for_logging' */
6417 L4_MABX_B.for_logging = L4_MABX_P.for_logging_Gain *
6418 L4_MABX_B.Decoder_o1.CurrentAzimuth;
6419 CurrentAzimuth_rad = L4_MABX_B.for_logging;
6420
6421 /* Gain: '<S391>/for_logging1' */
6422 L4_MABX_B.for_logging1 = L4_MABX_P.for_logging1_Gain *
6423 L4_MABX_B.Decoder_o1.TargetAzimuth;
6424 TargetAzimuth_rad = L4_MABX_B.for_logging1;
6425
6426 /* Gain: '<S391>/m//s_to_km//h_2' */
6427 L4_MABX_B.ms_to_kmh_2 = L4_MABX_P.ms_to_kmh_2_Gain *
6428 L4_MABX_B.Decoder_o1.TargetVelocity;
6429 TargetVelocity_kph = L4_MABX_B.ms_to_kmh_2;
6430
6431 /* Gain: '<S391>/for_logging2' */
6432 L4_MABX_B.for_logging2 = L4_MABX_P.for_logging2_Gain *
6433 L4_MABX_B.Decoder_o1.Curvature;
6434 Curvature = L4_MABX_B.for_logging2;
6435
6436 /* Gain: '<S391>/for_logging3' */
6437 L4_MABX_B.for_logging3 = L4_MABX_P.for_logging3_Gain *
6438 L4_MABX_B.Decoder_o1.CrosstrackError;
6439 CrosstrackError = L4_MABX_B.for_logging3;
6440 } else {
6441 SupervisorMode = L4_MABX_P.Failure_Value_k;
6442 CurrentAzimuth_rad = L4_MABX_P.NoData_Value;
6443 TargetAzimuth_rad = L4_MABX_P.NoData_Value;
6444 TargetVelocity_kph = L4_MABX_P.NoData_Value;
6445 Curvature = L4_MABX_P.NoData_Value;
6446 CrosstrackError = L4_MABX_P.NoData_Value;
6447 }
6448
6449 /* End of Switch: '<S391>/Switch9' */
6450
6451 /* Outputs for Atomic SubSystem: '<S65>/Task_10ms' */
6452 /* RelationalOperator: '<S95>/Operator' incorporates:
6453 * Constant: '<S76>/Supervisor_Autonomous_Mode'
6454 */
6455 L4_MABX_B.Operator_ns = (L4_MABX_P.Supervisor_Autonomous_Mode_Valu ==
6456 SupervisorMode);
6457
6458 /* Logic: '<S76>/AND' */
6459 AutonomousEnabled = (L4_MABX_B.Operator_ns && RTMapsOk && EnableSw && EStop);
6460
6461 /* Logic: '<S83>/Logical Operator' */
6462 L4_MABX_B.LogicalOperator_dy = !AutonomousEnabled;
6463
6464 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else' */
6465
6466 /* Constant: '<S83>/APTC_PEDAL_POSITION_OVR_APV' incorporates:
6467 * Constant: '<S83>/APTC_DESIRED_PEDAL_POSITION_APV'
6468 */
6469 L4_MABX_If_Then_Else(L4_MABX_P.APTC_PEDAL_POSITION_OVR_APV_Val,
6470 L4_MABX_P.APTC_DESIRED_PEDAL_POSITION_APV,
6471 Pedal_pwm_position, &L4_MABX_B.If_Then_Else_oy);
6472
6473 /* End of Outputs for SubSystem: '<S83>/If_Then_Else' */
6474
6475 /* DataTypeConversion: '<S83>/Data Type Conversion1' */
6476 L4_MABX_B.DataTypeConversion1_h = L4_MABX_B.SFunction1_o5_dc;
6477
6478 /* Lookup_n-D: '<S83>/2-D Lookup Table' */
6479 L4_MABX_B.uDLookupTable = look2_binlcapw(L4_MABX_B.If_Then_Else_oy.Switch,
6480 L4_MABX_B.DataTypeConversion1_h, APTC_TRQ_PED_TRQ_POS_STEP_MPV,
6481 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_TRQ_DATA_MPV,
6482 L4_MABX_P.uDLookupTable_maxIndex, 8U);
6483
6484 /* DataTypeConversion: '<S77>/Data Type Conversion5' */
6485 L4_MABX_B.DataTypeConversion5_o = L4_MABX_B.SFunction1_o1_h54;
6486
6487 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
6488 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
6489 L4_MABX_B.distanceSpdTarget_e = L4_MABX_DW.TmpRTBAtSignalConversion1Inport;
6490 }
6491
6492 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
6493 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
6494 */
6495 switch (LONG_SPEED_SRC_SELECTOR_APV) {
6496 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
6497 /* SignalConversion: '<S81>/Signal Conversion1' */
6498 L4_MABX_B.Vehicle_speed_target_g = L4_MABX_B.distanceSpdTarget_e;
6499 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_g;
6500 break;
6501
6502 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
6503 /* SignalConversion: '<S81>/Signal Conversion4' incorporates:
6504 * Constant: '<S81>/VSPD_TARGET_KPH_APV'
6505 */
6506 L4_MABX_B.Vehicle_speed_target_o5 = VSPD_TARGET_KPH_APV;
6507 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_o5;
6508 break;
6509
6510 default:
6511 /* SignalConversion: '<S81>/Signal Conversion9' */
6512 L4_MABX_B.Vehicle_speed_target_k = TargetVelocity_kph;
6513 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_k;
6514 break;
6515 }
6516
6517 /* SignalConversion: '<S81>/Signal Conversion16' */
6518 L4_MABX_B.VSPD_TARGET_KPH_APV_g = L4_MABX_B.Vehicle_speed_target_o;
6519
6520 /* Saturate: '<S81>/Saturation9' incorporates:
6521 * Constant: '<S81>/VSPD_HYST_KPH_APV'
6522 */
6523 DeltaTime = L4_MABX_P.VSPD_HYST_KPH_APV_Value;
6524 Time56 = L4_MABX_P.Saturation9_LowerSat;
6525 PositionFinalLimited = L4_MABX_P.Saturation9_UpperSat;
6526 if (DeltaTime > PositionFinalLimited) {
6527 L4_MABX_B.VSPD_HYST_KPH_APV_f = PositionFinalLimited;
6528 } else if (DeltaTime < Time56) {
6529 L4_MABX_B.VSPD_HYST_KPH_APV_f = Time56;
6530 } else {
6531 L4_MABX_B.VSPD_HYST_KPH_APV_f = DeltaTime;
6532 }
6533
6534 /* End of Saturate: '<S81>/Saturation9' */
6535
6536 /* Sum: '<S103>/Add' */
6537 L4_MABX_B.Add_k = L4_MABX_B.VSPD_TARGET_KPH_APV_g +
6538 L4_MABX_B.VSPD_HYST_KPH_APV_f;
6539
6540 /* RelationalOperator: '<S103>/Relational Operator' */
6541 L4_MABX_B.f_vspd_geq_than_target_plus_hys = (L4_MABX_B.DataTypeConversion5_o >=
6542 L4_MABX_B.Add_k);
6543
6544 /* Saturate: '<S81>/Saturation1' incorporates:
6545 * Constant: '<S81>/VSPD_BRAKE_STOP_THRESH_KPH_APV'
6546 */
6547 DeltaTime = L4_MABX_P.VSPD_BRAKE_STOP_THRESH_KPH_APV_;
6548 Time56 = L4_MABX_P.Saturation1_LowerSat;
6549 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat;
6550 if (DeltaTime > PositionFinalLimited) {
6551 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = PositionFinalLimited;
6552 } else if (DeltaTime < Time56) {
6553 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = Time56;
6554 } else {
6555 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = DeltaTime;
6556 }
6557
6558 /* End of Saturate: '<S81>/Saturation1' */
6559
6560 /* RelationalOperator: '<S103>/Relational Operator1' */
6561 L4_MABX_B.f_target_is_stop_thresh = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b
6562 == L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6563
6564 /* RelationalOperator: '<S199>/Compare' incorporates:
6565 * Constant: '<S199>/Constant'
6566 */
6567 L4_MABX_B.Compare_e = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
6568 L4_MABX_P.Constant_Value_k);
6569
6570 /* RelationalOperator: '<S103>/Relational Operator2' */
6571 L4_MABX_B.RelationalOperator2_p = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6572 L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6573
6574 /* RelationalOperator: '<S103>/Relational Operator3' */
6575 L4_MABX_B.RelationalOperator3 = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6576 L4_MABX_B.DataTypeConversion5_o);
6577
6578 /* Logic: '<S103>/Logical Operator' */
6579 L4_MABX_B.f_vspd_leq_than_hyst_and_target = (L4_MABX_B.RelationalOperator2_p &&
6580 L4_MABX_B.RelationalOperator3);
6581
6582 /* Logic: '<S103>/Logical Operator1' */
6583 L4_MABX_B.LogicalOperator1_mr = (L4_MABX_B.f_vspd_geq_than_target_plus_hys ||
6584 L4_MABX_B.f_target_is_stop_thresh || L4_MABX_B.Compare_e ||
6585 L4_MABX_B.f_vspd_leq_than_hyst_and_target);
6586
6587 /* DataTypeConversion: '<S77>/Data Type Conversion4' */
6588 L4_MABX_B.DataTypeConversion4_d = AutonomousEnabled;
6589
6590 /* Logic: '<S103>/Logical Operator2' */
6591 L4_MABX_B.F_Brake_control_active = (L4_MABX_B.LogicalOperator1_mr &&
6592 L4_MABX_B.DataTypeConversion4_d);
6593
6594 /* DataTypeConversion: '<S79>/Data Type Conversion4' */
6595 L4_MABX_B.DataTypeConversion4_ib = L4_MABX_B.SFunction1_o1_h54;
6596
6597 /* DataTypeConversion: '<S77>/Data Type Conversion1' */
6598 PositionFinalLimited = L4_MABX_B.SFunction1_o8_k;
6599 if (PositionFinalLimited < 256.0) {
6600 if (PositionFinalLimited >= 0.0) {
6601 starting_index = (uint8_T)PositionFinalLimited;
6602 } else {
6603 starting_index = 0U;
6604 }
6605 } else {
6606 starting_index = MAX_uint8_T;
6607 }
6608
6609 L4_MABX_B.DataTypeConversion1_ba = starting_index;
6610
6611 /* End of DataTypeConversion: '<S77>/Data Type Conversion1' */
6612
6613 /* DataTypeConversion: '<S77>/Data Type Conversion3' */
6614 L4_MABX_B.BrkPedArbBrakeSwitch_c = (ENUM_J1939_SWITCH_T)
6615 L4_MABX_B.DataTypeConversion1_ba;
6616
6617 /* DataTypeConversion: '<S203>/Data Type Conversion1' */
6618 L4_MABX_B.DataTypeConversion1_cy = L4_MABX_B.BrkPedArbBrakeSwitch_c;
6619
6620 /* RelationalOperator: '<S209>/Compare' incorporates:
6621 * Constant: '<S209>/Constant'
6622 */
6623 L4_MABX_B.Compare_e5 = (L4_MABX_B.DataTypeConversion1_cy ==
6624 L4_MABX_P.CompareToConstant2_const);
6625
6626 /* Logic: '<S203>/Logical Operator2' */
6627 L4_MABX_B.LogicalOperator2_n = !L4_MABX_B.Compare_e5;
6628
6629 /* DataTypeConversion: '<S203>/Data Type Conversion5' */
6630 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_ow);
6631 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
6632 PositionFinalLimited = 0.0;
6633 } else {
6634 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
6635 }
6636
6637 L4_MABX_B.DataTypeConversion5_p = (uint8_T)(PositionFinalLimited < 0.0 ?
6638 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
6639 (uint8_T)PositionFinalLimited);
6640
6641 /* End of DataTypeConversion: '<S203>/Data Type Conversion5' */
6642
6643 /* DataTypeConversion: '<S203>/Data Type Conversion3' */
6644 L4_MABX_B.DataTypeConversion3_l5 = (ENUM_J1939_SWITCH_T)
6645 L4_MABX_B.DataTypeConversion5_p;
6646
6647 /* RelationalOperator: '<S207>/Compare' incorporates:
6648 * Constant: '<S207>/Constant'
6649 */
6650 L4_MABX_B.Compare_i = (L4_MABX_B.DataTypeConversion3_l5 ==
6651 L4_MABX_P.CompareToConstant_const_e);
6652
6653 /* RelationalOperator: '<S208>/Compare' incorporates:
6654 * Constant: '<S208>/Constant'
6655 */
6656 L4_MABX_B.Compare_ex = (L4_MABX_B.DataTypeConversion3_l5 ==
6657 L4_MABX_P.CompareToConstant1_const_j);
6658
6659 /* Logic: '<S203>/BrakingActive2' */
6660 L4_MABX_B.BrakingActive2 = (L4_MABX_B.Compare_i || L4_MABX_B.Compare_ex);
6661
6662 /* Logic: '<S203>/BrakingActive1' */
6663 L4_MABX_B.f_brake_sw_off = (L4_MABX_B.LogicalOperator2_n &&
6664 L4_MABX_B.BrakingActive2);
6665
6666 /* RelationalOperator: '<S210>/Compare' incorporates:
6667 * Constant: '<S210>/Constant'
6668 */
6669 L4_MABX_B.Compare_a = (L4_MABX_B.SPN524_TransSelectedGear >
6670 L4_MABX_P.Constant_Value_il);
6671
6672 /* RelationalOperator: '<S211>/Compare' incorporates:
6673 * Constant: '<S211>/Constant'
6674 */
6675 L4_MABX_B.Compare_os = (L4_MABX_B.SPN523_TransCurrentGear >
6676 L4_MABX_P.Constant_Value_f);
6677
6678 /* Logic: '<S203>/Logical Operator1' */
6679 L4_MABX_B.f_brk_gov_inactive = !L4_MABX_B.F_Brake_control_active;
6680
6681 /* Logic: '<S203>/Logical Operator' */
6682 L4_MABX_B.LogicalOperator_k = (AutonomousEnabled && L4_MABX_B.f_brake_sw_off &&
6683 L4_MABX_B.Compare_a && L4_MABX_B.Compare_os && L4_MABX_B.f_brk_gov_inactive);
6684
6685 /* Outputs for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
6686 * EnablePort: '<S206>/Enable'
6687 */
6688 if (L4_MABX_B.LogicalOperator_k) {
6689 if (!L4_MABX_DW.Throttle_controller_gov_MODE) {
6690 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
6691 L4_MABX_DW.Unit_Delay1_DSTATE_p1 =
6692 L4_MABX_P.Unit_Delay1_InitialCondition_o;
6693
6694 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
6695 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
6696
6697 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
6698 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
6699
6700 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
6701 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
6702
6703 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
6704 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
6705
6706 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
6707 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
6708 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
6709
6710 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
6711 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
6712 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
6713
6714 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
6715 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
6716
6717 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
6718 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
6719 L4_MABX_DW.Throttle_controller_gov_MODE = true;
6720 }
6721
6722 /* DataTypeConversion: '<S213>/Data Type Conversion9' */
6723 L4_MABX_B.DataTypeConversion9_h = L4_MABX_B.SFunction1_o4_ga;
6724
6725 /* DataTypeConversion: '<S213>/Data Type Conversion1' */
6726 L4_MABX_B.DataTypeConversion1_iq = L4_MABX_B.SFunction1_o2_ec;
6727
6728 /* Sum: '<S213>/Add' */
6729 L4_MABX_B.Add_di = L4_MABX_B.DataTypeConversion9_h +
6730 L4_MABX_B.DataTypeConversion1_iq;
6731
6732 /* RelationalOperator: '<S218>/Relational Operator1' incorporates:
6733 * Constant: '<S213>/Constant1'
6734 */
6735 L4_MABX_B.RelationalOperator1_n = (L4_MABX_B.Add_di >=
6736 L4_MABX_P.Constant1_Value_c);
6737
6738 /* RelationalOperator: '<S218>/Relational Operator' incorporates:
6739 * Constant: '<S213>/Constant3'
6740 */
6741 L4_MABX_B.RelationalOperator_d3 = (L4_MABX_B.Add_di <=
6742 L4_MABX_P.Constant3_Value_d);
6743
6744 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else1' */
6745
6746 /* Constant: '<S213>/Constant3' */
6747 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_d3,
6748 L4_MABX_P.Constant3_Value_d, L4_MABX_B.Add_di,
6749 &L4_MABX_B.If_Then_Else1_h);
6750
6751 /* End of Outputs for SubSystem: '<S218>/If_Then_Else1' */
6752
6753 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else' */
6754
6755 /* Constant: '<S213>/Constant1' */
6756 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_n,
6757 L4_MABX_P.Constant1_Value_c,
6758 L4_MABX_B.If_Then_Else1_h.Switch,
6759 &L4_MABX_B.If_Then_Else_ct);
6760
6761 /* End of Outputs for SubSystem: '<S218>/If_Then_Else' */
6762
6763 /* DataTypeConversion: '<S213>/Data Type Conversion2' */
6764 L4_MABX_B.DataTypeConversion2_id = L4_MABX_B.SPN514_NominalFrictionPercentTo;
6765
6766 /* RelationalOperator: '<S219>/Relational Operator1' incorporates:
6767 * Constant: '<S213>/Constant2'
6768 */
6769 L4_MABX_B.RelationalOperator1_ch = (L4_MABX_B.DataTypeConversion2_id >=
6770 L4_MABX_P.Constant2_Value_b);
6771
6772 /* RelationalOperator: '<S219>/Relational Operator' incorporates:
6773 * Constant: '<S213>/Constant4'
6774 */
6775 L4_MABX_B.RelationalOperator_j1 = (L4_MABX_B.DataTypeConversion2_id <=
6776 L4_MABX_P.Constant4_Value);
6777
6778 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else1' */
6779
6780 /* Constant: '<S213>/Constant4' */
6781 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j1,
6782 L4_MABX_P.Constant4_Value,
6783 L4_MABX_B.DataTypeConversion2_id,
6784 &L4_MABX_B.If_Then_Else1_kg);
6785
6786 /* End of Outputs for SubSystem: '<S219>/If_Then_Else1' */
6787
6788 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else' */
6789
6790 /* Constant: '<S213>/Constant2' */
6791 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ch,
6792 L4_MABX_P.Constant2_Value_b,
6793 L4_MABX_B.If_Then_Else1_kg.Switch,
6794 &L4_MABX_B.If_Then_Else_bo);
6795
6796 /* End of Outputs for SubSystem: '<S219>/If_Then_Else' */
6797
6798 /* DataTypeConversion: '<S213>/Data Type Conversion3' */
6799 L4_MABX_B.DataTypeConversion3_h = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
6800
6801 /* RelationalOperator: '<S220>/Relational Operator1' incorporates:
6802 * Constant: '<S213>/Constant5'
6803 */
6804 L4_MABX_B.RelationalOperator1_ln = (L4_MABX_B.DataTypeConversion3_h >=
6805 L4_MABX_P.Constant5_Value);
6806
6807 /* RelationalOperator: '<S220>/Relational Operator' incorporates:
6808 * Constant: '<S213>/Constant6'
6809 */
6810 L4_MABX_B.RelationalOperator_fd = (L4_MABX_B.DataTypeConversion3_h <=
6811 L4_MABX_P.Constant6_Value);
6812
6813 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else1' */
6814
6815 /* Constant: '<S213>/Constant6' */
6816 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_fd,
6817 L4_MABX_P.Constant6_Value,
6818 L4_MABX_B.DataTypeConversion3_h,
6819 &L4_MABX_B.If_Then_Else1_dz);
6820
6821 /* End of Outputs for SubSystem: '<S220>/If_Then_Else1' */
6822
6823 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else' */
6824
6825 /* Constant: '<S213>/Constant5' */
6826 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ln,
6827 L4_MABX_P.Constant5_Value,
6828 L4_MABX_B.If_Then_Else1_dz.Switch,
6829 &L4_MABX_B.If_Then_Else_br);
6830
6831 /* End of Outputs for SubSystem: '<S220>/If_Then_Else' */
6832
6833 /* DataTypeConversion: '<S217>/Data Type Conversion5' */
6834 L4_MABX_B.DataTypeConversion5_i = L4_MABX_B.SFunction1_o1_br;
6835
6836 /* Lookup_n-D: '<S224>/1-D Lookup Table' */
6837 L4_MABX_B.Coeff_of_drag_Cd = look1_binlcapw(L4_MABX_B.DataTypeConversion5_i,
6838 L4_MABX_P.uDLookupTable_bp01Data, L4_MABX_P.uDLookupTable_tableData, 2U);
6839
6840 /* Gain: '<S224>/KPH_TO_M//S' */
6841 L4_MABX_B.KPH_TO_MS = L4_MABX_P.KPH_TO_MS_Gain *
6842 L4_MABX_B.DataTypeConversion5_i;
6843
6844 /* Math: '<S224>/Math Function'
6845 *
6846 * About '<S224>/Math Function':
6847 * Operator: magnitude^2
6848 */
6849 PositionFinalLimited = L4_MABX_B.KPH_TO_MS;
6850 L4_MABX_B.MathFunction = PositionFinalLimited * PositionFinalLimited;
6851
6852 /* DataTypeConversion: '<S217>/Data Type Conversion' */
6853 L4_MABX_B.DataTypeConversion_i = L4_MABX_B.SFunction1_o1_e3;
6854
6855 /* Gain: '<S224>/KPA_TO_PA' */
6856 L4_MABX_B.KPA_TO_PA = L4_MABX_P.KPA_TO_PA_Gain *
6857 L4_MABX_B.DataTypeConversion_i;
6858
6859 /* DataTypeConversion: '<S217>/Data Type Conversion4' */
6860 L4_MABX_B.DataTypeConversion4_b = L4_MABX_B.SFunction1_o3_f4;
6861
6862 /* Sum: '<S224>/Add' incorporates:
6863 * Constant: '<S224>/Constant'
6864 */
6865 L4_MABX_B.Add_o = L4_MABX_B.DataTypeConversion4_b + L4_MABX_P.Constant_Value;
6866
6867 /* Product: '<S224>/Product' incorporates:
6868 * Constant: '<S224>/Constant1'
6869 */
6870 L4_MABX_B.Product_nm = L4_MABX_B.Add_o * L4_MABX_P.Constant1_Value_p;
6871
6872 /* Product: '<S224>/Divide' */
6873 L4_MABX_B.Air_density_kgm3 = L4_MABX_B.KPA_TO_PA / L4_MABX_B.Product_nm;
6874
6875 /* Product: '<S224>/Product1' incorporates:
6876 * Constant: '<S217>/Veh_Frontal_Area_m^2'
6877 * Constant: '<S224>/Constant2'
6878 */
6879 L4_MABX_B.Aerodynamic_resistance_Ra = L4_MABX_B.Coeff_of_drag_Cd *
6880 L4_MABX_P.Veh_Frontal_Area_m2_Value * L4_MABX_B.MathFunction *
6881 L4_MABX_B.Air_density_kgm3 * L4_MABX_P.Constant2_Value_h;
6882
6883 /* DataTypeConversion: '<S217>/Data Type Conversion6' */
6884 L4_MABX_B.DataTypeConversion6_f = L4_MABX_B.PitchAngleExRange;
6885
6886 /* Product: '<S225>/Divide' incorporates:
6887 * Constant: '<S225>/Constant2'
6888 * Constant: '<S225>/Constant3'
6889 */
6890 L4_MABX_B.grade_angle_radians = L4_MABX_B.DataTypeConversion6_f *
6891 L4_MABX_P.Constant2_Value_bc / L4_MABX_P.Constant3_Value_n;
6892
6893 /* Trigonometry: '<S225>/Trigonometric Function' */
6894 L4_MABX_B.TrigonometricFunction_a = sin(L4_MABX_B.grade_angle_radians);
6895
6896 /* Product: '<S225>/Product1' incorporates:
6897 * Constant: '<S225>/Constant1'
6898 */
6899 L4_MABX_B.Gradient_resistance_Rg = L4_MABX_B.SPN1760_GrossCombinationVehicle
6900 * L4_MABX_B.TrigonometricFunction_a * L4_MABX_P.Constant1_Value_a;
6901
6902 /* Gain: '<S228>/KPA_TO_M//S' */
6903 L4_MABX_B.KPA_TO_MS = L4_MABX_P.KPA_TO_MS_Gain *
6904 L4_MABX_B.DataTypeConversion5_i;
6905
6906 /* Product: '<S228>/Divide2' incorporates:
6907 * Constant: '<S228>/Constant2'
6908 * Constant: '<S228>/Constant6'
6909 */
6910 L4_MABX_B.Divide2_c = L4_MABX_P.Constant2_Value_bq * L4_MABX_B.KPA_TO_MS /
6911 L4_MABX_P.Constant6_Value_g;
6912
6913 /* Math: '<S228>/Math Function'
6914 *
6915 * About '<S228>/Math Function':
6916 * Operator: magnitude^2
6917 */
6918 PositionFinalLimited = L4_MABX_B.Divide2_c;
6919 L4_MABX_B.MathFunction_l = PositionFinalLimited * PositionFinalLimited;
6920
6921 /* Sum: '<S228>/Add' incorporates:
6922 * Constant: '<S228>/Constant1'
6923 */
6924 L4_MABX_B.Add_nj = L4_MABX_P.Constant1_Value_m + L4_MABX_B.MathFunction_l;
6925
6926 /* Outputs for Atomic SubSystem: '<S222>/If_Then_Else' */
6927
6928 /* Constant: '<S217>/TIRE1_tire_pressure' incorporates:
6929 * Constant: '<S222>/Truck166_tire_pressure'
6930 */
6931 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_p,
6932 L4_MABX_P.TIRE1_tire_pressure_Value,
6933 L4_MABX_P.Truck166_tire_pressure_Value,
6934 &L4_MABX_B.If_Then_Else_nr);
6935
6936 /* End of Outputs for SubSystem: '<S222>/If_Then_Else' */
6937
6938 /* Gain: '<S228>/KPA_TO_BAR' */
6939 L4_MABX_B.KPA_TO_BAR = L4_MABX_P.KPA_TO_BAR_Gain *
6940 L4_MABX_B.If_Then_Else_nr.Switch;
6941
6942 /* Product: '<S228>/Divide' */
6943 L4_MABX_B.Divide_k = L4_MABX_B.Add_nj / L4_MABX_B.KPA_TO_BAR;
6944
6945 /* Sum: '<S228>/Add1' incorporates:
6946 * Constant: '<S228>/Constant'
6947 */
6948 L4_MABX_B.Coeff_of_rolling_resistance_Cr = L4_MABX_P.Constant_Value_h +
6949 L4_MABX_B.Divide_k;
6950
6951 /* Product: '<S226>/Divide1' incorporates:
6952 * Constant: '<S226>/Constant4'
6953 * Constant: '<S226>/Constant5'
6954 */
6955 L4_MABX_B.grade_angle_radians_a = L4_MABX_B.DataTypeConversion6_f *
6956 L4_MABX_P.Constant4_Value_o / L4_MABX_P.Constant5_Value_p;
6957
6958 /* Trigonometry: '<S226>/Trigonometric Function' */
6959 L4_MABX_B.TrigonometricFunction_e = cos(L4_MABX_B.grade_angle_radians_a);
6960
6961 /* Product: '<S226>/Product2' incorporates:
6962 * Constant: '<S226>/Constant3'
6963 */
6964 L4_MABX_B.Rolling_resistance_Rr = L4_MABX_B.Coeff_of_rolling_resistance_Cr *
6965 L4_MABX_B.SPN1760_GrossCombinationVehicle *
6966 L4_MABX_B.TrigonometricFunction_e * L4_MABX_P.Constant3_Value_p;
6967
6968 /* Sum: '<S222>/Add' incorporates:
6969 * Constant: '<S222>/Constant'
6970 */
6971 L4_MABX_B.TotalTractiveForce_N = ((L4_MABX_B.Aerodynamic_resistance_Ra +
6972 L4_MABX_B.Gradient_resistance_Rg) + L4_MABX_B.Rolling_resistance_Rr) +
6973 L4_MABX_P.Constant_Value_g;
6974
6975 /* Saturate: '<S217>/Saturation' */
6976 DeltaTime = L4_MABX_B.SPN526_TransActualGearRatio;
6977 Time56 = L4_MABX_P.Saturation_LowerSat_p;
6978 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_n;
6979 if (DeltaTime > PositionFinalLimited) {
6980 L4_MABX_B.Saturation_g = PositionFinalLimited;
6981 } else if (DeltaTime < Time56) {
6982 L4_MABX_B.Saturation_g = Time56;
6983 } else {
6984 L4_MABX_B.Saturation_g = DeltaTime;
6985 }
6986
6987 /* End of Saturate: '<S217>/Saturation' */
6988
6989 /* MATLAB Function: '<S217>/F_wheel_to_Tq_eng' incorporates:
6990 * Constant: '<S217>/N_rar'
6991 * Constant: '<S217>/R_wheel_m'
6992 * Constant: '<S217>/eta'
6993 */
6994 /* MATLAB Function 'STATE_CONTROL_10ms/Throttle_controller_gov/Determine_engine_torque_and_losses/CalculateRoadLoadTorque/F_wheel_to_Tq_eng': '<S223>:1' */
6995 /* '<S223>:1:3' */
6996 L4_MABX_B.road_load_tq = L4_MABX_B.TotalTractiveForce_N *
6997 L4_MABX_P.R_wheel_m_Value / L4_MABX_P.N_rar_Value / L4_MABX_B.Saturation_g
6998 / L4_MABX_P.eta_Value;
6999
7000 /* DataTypeConversion: '<S217>/Data Type Conversion1' */
7001 L4_MABX_B.DataTypeConversion1_be = L4_MABX_B.SPN544_EngineReferenceTorque;
7002
7003 /* Product: '<S217>/Divide' */
7004 L4_MABX_B.RoadLoadTorque_fract = L4_MABX_B.road_load_tq /
7005 L4_MABX_B.DataTypeConversion1_be;
7006
7007 /* Gain: '<S217>/Gain' */
7008 L4_MABX_B.RoadLoadTorque_pct = L4_MABX_P.Gain_Gain_n *
7009 L4_MABX_B.RoadLoadTorque_fract;
7010
7011 /* Outputs for Atomic SubSystem: '<S213>/If_Then_Else' */
7012
7013 /* Constant: '<S213>/UseFeedForwardRoadLoad' incorporates:
7014 * Constant: '<S213>/ZeroRoadLoadCPV'
7015 */
7016 L4_MABX_If_Then_Else(L4_MABX_P.UseFeedForwardRoadLoad_Value,
7017 L4_MABX_B.RoadLoadTorque_pct,
7018 L4_MABX_P.ZeroRoadLoadCPV_Value,
7019 &L4_MABX_B.If_Then_Else_as);
7020
7021 /* End of Outputs for SubSystem: '<S213>/If_Then_Else' */
7022
7023 /* Sum: '<S213>/Add1' */
7024 L4_MABX_B.FeedForwardTorque_pct = (L4_MABX_B.If_Then_Else_bo.Switch +
7025 L4_MABX_B.If_Then_Else_br.Switch) + L4_MABX_B.If_Then_Else_as.Switch;
7026
7027 /* UnitDelay: '<S214>/Unit_Delay1' */
7028 L4_MABX_B.Unit_Delay1_m = L4_MABX_DW.Unit_Delay1_DSTATE_p1;
7029
7030 /* Logic: '<S214>/Logical Operator' incorporates:
7031 * Constant: '<S214>/Constant1'
7032 */
7033 L4_MABX_B.f_gpid_reset = (L4_MABX_P.Constant1_Value_g1 ||
7034 L4_MABX_B.Unit_Delay1_m);
7035
7036 /* Sum: '<S214>/Subtract' */
7037 L4_MABX_B.Subtract_f = L4_MABX_B.VSPD_TARGET_KPH_APV_g -
7038 L4_MABX_B.VSPD_HYST_KPH_APV_f;
7039
7040 /* RelationalOperator: '<S214>/Relational Operator' */
7041 L4_MABX_B.RelationalOperator_fl = (L4_MABX_B.DataTypeConversion4_ib >
7042 L4_MABX_B.Subtract_f);
7043
7044 /* UnitDelay: '<S214>/Unit_Delay' */
7045 L4_MABX_B.Unit_Delay_d5 = L4_MABX_DW.Unit_Delay_DSTATE_lq;
7046
7047 /* RelationalOperator: '<S214>/Relational Operator1' */
7048 L4_MABX_B.RelationalOperator1_d3 = (L4_MABX_B.RelationalOperator_fl !=
7049 L4_MABX_B.Unit_Delay_d5);
7050
7051 /* Lookup_n-D: '<S235>/2D_Lookup_Table' */
7052 L4_MABX_B.uD_Lookup_Table_am = look2_binlcapw
7053 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7054 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7055 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KP_DATA_MPV,
7056 L4_MABX_P.uD_Lookup_Table_maxIndex, 8U);
7057
7058 /* Lookup_n-D: '<S236>/2D_Lookup_Table' */
7059 L4_MABX_B.uD_Lookup_Table_o = look2_binlcapw
7060 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7061 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7062 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KI_DATA_MPV,
7063 L4_MABX_P.uD_Lookup_Table_maxIndex_p, 8U);
7064
7065 /* Lookup_n-D: '<S237>/2D_Lookup_Table' */
7066 L4_MABX_B.uD_Lookup_Table_h = look2_binlcapw
7067 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7068 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7069 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KD_DATA_MPV,
7070 L4_MABX_P.uD_Lookup_Table_maxIndex_a, 8U);
7071
7072 /* Abs: '<S238>/Abs' */
7073 L4_MABX_B.Abs_igm = fabs(L4_MABX_B.uD_Lookup_Table_o);
7074
7075 /* Abs: '<S238>/Abs1' */
7076 L4_MABX_B.Abs1_a = fabs(L4_MABX_B.uD_Lookup_Table_h);
7077
7078 /* UnitDelay: '<S241>/Unit_Delay' */
7079 L4_MABX_B.Unit_Delay_i0 = L4_MABX_DW.Unit_Delay_DSTATE_be;
7080
7081 /* Logic: '<S241>/Logical Operator1' */
7082 L4_MABX_B.LogicalOperator1_o = (L4_MABX_B.Unit_Delay_i0 ||
7083 L4_MABX_B.f_gpid_reset);
7084
7085 /* UnitDelay: '<S261>/Unit_Delay1' */
7086 L4_MABX_B.Unit_Delay1_dw = L4_MABX_DW.Unit_Delay1_DSTATE_h;
7087
7088 /* Logic: '<S261>/Logical Operator' */
7089 L4_MABX_B.LogicalOperator_at = (L4_MABX_B.LogicalOperator1_o ||
7090 L4_MABX_B.Unit_Delay1_dw);
7091
7092 /* UnitDelay: '<S262>/Unit_Delay' */
7093 L4_MABX_B.Unit_Delay_ne = L4_MABX_DW.Unit_Delay_DSTATE_fi;
7094
7095 /* Logic: '<S262>/Logical Operator1' */
7096 L4_MABX_B.LogicalOperator1_k = (L4_MABX_B.LogicalOperator1_o ||
7097 L4_MABX_B.Unit_Delay_ne);
7098
7099 /* UnitDelay: '<S266>/FixPt Unit Delay2' */
7100 L4_MABX_B.FixPtUnitDelay2_at = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq;
7101
7102 /* UnitDelay: '<S266>/FixPt Unit Delay1' */
7103 L4_MABX_B.Xold_a = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a;
7104
7105 /* Switch: '<S266>/Init' */
7106 if (L4_MABX_B.FixPtUnitDelay2_at != 0) {
7107 L4_MABX_B.Init_pu = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7108 } else {
7109 L4_MABX_B.Init_pu = L4_MABX_B.Xold_a;
7110 }
7111
7112 /* End of Switch: '<S266>/Init' */
7113
7114 /* Abs: '<S262>/Abs' incorporates:
7115 * Constant: '<S206>/TqDemSlewInc'
7116 */
7117 L4_MABX_B.Abs_n = fabs(L4_MABX_P.TqDemSlewInc_Value);
7118
7119 /* Product: '<S262>/Product1' incorporates:
7120 * Constant: '<S206>/TqDemDt'
7121 */
7122 L4_MABX_B.Product1_g = L4_MABX_B.Abs_n * L4_MABX_P.TqDemDt_Value;
7123
7124 /* Sum: '<S262>/Add1' */
7125 L4_MABX_B.Add1_g = L4_MABX_B.Init_pu + L4_MABX_B.Product1_g;
7126
7127 /* MinMax: '<S262>/MinMax2' */
7128 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7129 PositionFinalLimited = L4_MABX_B.Add1_g;
7130 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7131 PositionFinalLimited = DeltaTime;
7132 }
7133
7134 L4_MABX_B.MinMax2_n = PositionFinalLimited;
7135
7136 /* End of MinMax: '<S262>/MinMax2' */
7137
7138 /* Abs: '<S262>/Abs1' incorporates:
7139 * Constant: '<S206>/TqDemSlewDec'
7140 */
7141 L4_MABX_B.Abs1_d = fabs(L4_MABX_P.TqDemSlewDec_Value);
7142
7143 /* Product: '<S262>/Product2' incorporates:
7144 * Constant: '<S206>/TqDemDt'
7145 */
7146 L4_MABX_B.Product2_bn = L4_MABX_P.TqDemDt_Value * L4_MABX_B.Abs1_d;
7147
7148 /* Sum: '<S262>/Subtract1' */
7149 L4_MABX_B.Subtract1_o = L4_MABX_B.Init_pu - L4_MABX_B.Product2_bn;
7150
7151 /* MinMax: '<S262>/MinMax1' */
7152 DeltaTime = L4_MABX_B.MinMax2_n;
7153 PositionFinalLimited = L4_MABX_B.Subtract1_o;
7154 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7155 PositionFinalLimited = DeltaTime;
7156 }
7157
7158 L4_MABX_B.MinMax1_g = PositionFinalLimited;
7159
7160 /* End of MinMax: '<S262>/MinMax1' */
7161
7162 /* Outputs for Atomic SubSystem: '<S262>/If_Then_Else' */
7163 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_k,
7164 L4_MABX_B.DataTypeConversion4_ib, L4_MABX_B.MinMax1_g,
7165 &L4_MABX_B.If_Then_Else_cp);
7166
7167 /* End of Outputs for SubSystem: '<S262>/If_Then_Else' */
7168
7169 /* Sum: '<S239>/Subtract' */
7170 L4_MABX_B.Subtract_jb = L4_MABX_B.If_Then_Else_cp.Switch -
7171 L4_MABX_B.DataTypeConversion4_ib;
7172
7173 /* MinMax: '<S261>/MinMax1' incorporates:
7174 * Constant: '<S206>/TqDemDt'
7175 * Constant: '<S206>/TqDemTFildCtrlErrorSecs'
7176 */
7177 DeltaTime = L4_MABX_P.TqDemDt_Value;
7178 PositionFinalLimited = L4_MABX_P.TqDemTFildCtrlErrorSecs_Value;
7179 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7180 PositionFinalLimited = DeltaTime;
7181 }
7182
7183 L4_MABX_B.MinMax1_d = PositionFinalLimited;
7184
7185 /* End of MinMax: '<S261>/MinMax1' */
7186
7187 /* Saturate: '<S261>/Saturation' */
7188 DeltaTime = L4_MABX_B.MinMax1_d;
7189 Time56 = L4_MABX_P.Saturation_LowerSat_g5;
7190 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_f;
7191 if (DeltaTime > PositionFinalLimited) {
7192 L4_MABX_B.Saturation_d = PositionFinalLimited;
7193 } else if (DeltaTime < Time56) {
7194 L4_MABX_B.Saturation_d = Time56;
7195 } else {
7196 L4_MABX_B.Saturation_d = DeltaTime;
7197 }
7198
7199 /* End of Saturate: '<S261>/Saturation' */
7200
7201 /* Product: '<S261>/Divide' incorporates:
7202 * Constant: '<S206>/TqDemDt'
7203 */
7204 L4_MABX_B.Divide_n = L4_MABX_P.TqDemDt_Value / L4_MABX_B.Saturation_d;
7205
7206 /* Product: '<S261>/Product2' */
7207 L4_MABX_B.Product2_l = L4_MABX_B.Subtract_jb * L4_MABX_B.Divide_n;
7208
7209 /* Sum: '<S261>/Subtract1' incorporates:
7210 * Constant: '<S261>/Constant1'
7211 */
7212 L4_MABX_B.Subtract1_k = L4_MABX_P.Constant1_Value_ci - L4_MABX_B.Divide_n;
7213
7214 /* UnitDelay: '<S261>/Unit_Delay2' */
7215 L4_MABX_B.Unit_Delay2_o = L4_MABX_DW.Unit_Delay2_DSTATE_m;
7216
7217 /* Product: '<S261>/Product1' */
7218 L4_MABX_B.Product1_p = L4_MABX_B.Subtract1_k * L4_MABX_B.Unit_Delay2_o;
7219
7220 /* Sum: '<S261>/Add1' */
7221 L4_MABX_B.Add1_i = L4_MABX_B.Product2_l + L4_MABX_B.Product1_p;
7222
7223 /* Outputs for Atomic SubSystem: '<S261>/If_Then_Else' */
7224 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_at, L4_MABX_B.Subtract_jb,
7225 L4_MABX_B.Add1_i, &L4_MABX_B.If_Then_Else_k2);
7226
7227 /* End of Outputs for SubSystem: '<S261>/If_Then_Else' */
7228
7229 /* RelationalOperator: '<S246>/Compare' incorporates:
7230 * Constant: '<S246>/Constant'
7231 */
7232 L4_MABX_B.Compare_go = (L4_MABX_B.Abs1_a >
7233 L4_MABX_P.CompareToConstant1_const_i);
7234
7235 /* Outputs for Enabled SubSystem: '<S238>/Calculate_D_term' */
7236
7237 /* Constant: '<S206>/TqDemDt' incorporates:
7238 * Constant: '<S206>/TqDemTFildTSecs'
7239 */
7240 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_go, L4_MABX_B.uD_Lookup_Table_h,
7241 L4_MABX_P.TqDemDt_Value, L4_MABX_B.LogicalOperator1_o,
7242 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_P.TqDemTFildTSecs_Value,
7243 &L4_MABX_B.Calculate_D_term_h, &L4_MABX_DW.Calculate_D_term_h,
7244 &L4_MABX_P.Calculate_D_term_h);
7245
7246 /* End of Outputs for SubSystem: '<S238>/Calculate_D_term' */
7247
7248 /* Product: '<S244>/Product' */
7249 L4_MABX_B.Product_i = L4_MABX_B.uD_Lookup_Table_am *
7250 L4_MABX_B.If_Then_Else_k2.Switch;
7251
7252 /* RelationalOperator: '<S206>/Relational Operator' */
7253 L4_MABX_B.RelationalOperator_a = (L4_MABX_B.SPN524_TransSelectedGear !=
7254 L4_MABX_B.SPN523_TransCurrentGear);
7255
7256 /* UnitDelay: '<S216>/Unit_Delay' */
7257 L4_MABX_B.Unit_Delay_m = L4_MABX_DW.Unit_Delay_DSTATE_fz;
7258
7259 /* RelationalOperator: '<S245>/Compare' incorporates:
7260 * Constant: '<S245>/Constant'
7261 */
7262 L4_MABX_B.Compare_p = (L4_MABX_B.Abs_igm >
7263 L4_MABX_P.CompareToConstant_const_d);
7264
7265 /* Outputs for Enabled SubSystem: '<S238>/Calculate_I_term' */
7266
7267 /* Constant: '<S206>/TqDemDt' incorporates:
7268 * Constant: '<S206>/GpidAwCondIntegration'
7269 * Constant: '<S206>/TqDemAwHyst'
7270 */
7271 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_p, L4_MABX_B.Product_i,
7272 L4_MABX_B.uD_Lookup_Table_o, L4_MABX_B.If_Then_Else_ct.Switch,
7273 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_B.LogicalOperator1_o,
7274 L4_MABX_P.TqDemDt_Value, L4_MABX_B.FeedForwardTorque_pct,
7275 L4_MABX_P.GpidAwCondIntegration_Value, L4_MABX_P.TqDemAwHyst_Value,
7276 L4_MABX_B.RelationalOperator_a, L4_MABX_B.Unit_Delay_m,
7277 &L4_MABX_B.Calculate_I_term_n, &L4_MABX_DW.Calculate_I_term_n,
7278 &L4_MABX_P.Calculate_I_term_n);
7279
7280 /* End of Outputs for SubSystem: '<S238>/Calculate_I_term' */
7281
7282 /* RelationalOperator: '<S264>/min_relop' incorporates:
7283 * Constant: '<S206>/TqDemSlewInc'
7284 * Constant: '<S264>/min_val'
7285 */
7286 L4_MABX_B.min_relop_cb = (L4_MABX_P.CheckStaticLowerBound_min_b <=
7287 L4_MABX_P.TqDemSlewInc_Value);
7288
7289 /* Assertion: '<S264>/Assertion' */
7290 utAssert(L4_MABX_B.min_relop_cb);
7291
7292 /* Sum: '<S240>/Add' */
7293 L4_MABX_B.Add_ds = ((L4_MABX_B.Product_i +
7294 L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch) +
7295 L4_MABX_B.Calculate_D_term_h.Subtract) +
7296 L4_MABX_B.FeedForwardTorque_pct;
7297
7298 /* RelationalOperator: '<S267>/Relational Operator1' incorporates:
7299 * Constant: '<S206>/TqDemLimMax'
7300 */
7301 L4_MABX_B.RelationalOperator1_j = (L4_MABX_B.Add_ds >=
7302 L4_MABX_P.TqDemLimMax_Value);
7303
7304 /* RelationalOperator: '<S267>/Relational Operator' incorporates:
7305 * Constant: '<S206>/TqDemLimMin'
7306 */
7307 L4_MABX_B.RelationalOperator_p = (L4_MABX_B.Add_ds <=
7308 L4_MABX_P.TqDemLimMin_Value);
7309
7310 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else1' */
7311
7312 /* Constant: '<S206>/TqDemLimMin' */
7313 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_p,
7314 L4_MABX_P.TqDemLimMin_Value, L4_MABX_B.Add_ds,
7315 &L4_MABX_B.If_Then_Else1_h3);
7316
7317 /* End of Outputs for SubSystem: '<S267>/If_Then_Else1' */
7318
7319 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else' */
7320
7321 /* Constant: '<S206>/TqDemLimMax' */
7322 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_j,
7323 L4_MABX_P.TqDemLimMax_Value,
7324 L4_MABX_B.If_Then_Else1_h3.Switch,
7325 &L4_MABX_B.If_Then_Else_pi);
7326
7327 /* End of Outputs for SubSystem: '<S267>/If_Then_Else' */
7328
7329 /* SignalConversion: '<S206>/OutportBufferForPID_d_term' */
7330 L4_MABX_B.PID_d_term_c = L4_MABX_B.Calculate_D_term_h.Subtract;
7331
7332 /* SignalConversion: '<S206>/OutportBufferForPID_hold_i_term_f' */
7333 L4_MABX_B.PID_hold_i_term_f_b =
7334 L4_MABX_B.Calculate_I_term_n.LogicalOperator2;
7335
7336 /* SignalConversion: '<S206>/OutportBufferForPID_i_term' */
7337 L4_MABX_B.PID_i_term_c = L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch;
7338 } else {
7339 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
7340 /* Disable for Enabled SubSystem: '<S238>/Calculate_D_term' */
7341 if (L4_MABX_DW.Calculate_D_term_h.Calculate_D_term_MODE) {
7342 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_h,
7343 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
7344 }
7345
7346 /* End of Disable for SubSystem: '<S238>/Calculate_D_term' */
7347
7348 /* Disable for Enabled SubSystem: '<S238>/Calculate_I_term' */
7349 if (L4_MABX_DW.Calculate_I_term_n.Calculate_I_term_MODE) {
7350 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_n,
7351 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
7352 }
7353
7354 /* End of Disable for SubSystem: '<S238>/Calculate_I_term' */
7355
7356 /* Disable for Outport: '<S206>/PID_output' */
7357 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
7358
7359 /* Disable for Outport: '<S206>/PID_output_unlim' */
7360 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
7361
7362 /* Disable for Outport: '<S206>/PID_control_error' */
7363 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
7364
7365 /* Disable for Outport: '<S206>/PID_p_term' */
7366 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
7367
7368 /* Disable for Outport: '<S206>/PID_i_term' */
7369 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
7370
7371 /* Disable for Outport: '<S206>/PID_d_term' */
7372 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
7373
7374 /* Disable for Outport: '<S206>/PID_hold_i_term_f' */
7375 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
7376 L4_MABX_DW.Throttle_controller_gov_MODE = false;
7377 }
7378 }
7379
7380 /* End of Outputs for SubSystem: '<S79>/Throttle_controller_gov' */
7381
7382 /* Switch: '<S79>/Switch' incorporates:
7383 * Constant: '<S79>/Constant3'
7384 */
7385 if (L4_MABX_B.F_Brake_control_active) {
7386 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_P.Constant3_Value;
7387 } else {
7388 /* DataTypeConversion: '<S79>/Data Type Conversion3' */
7389 L4_MABX_B.DataTypeConversion3_m = L4_MABX_B.SPN544_EngineReferenceTorque;
7390
7391 /* Product: '<S79>/Product' incorporates:
7392 * Constant: '<S79>/Constant2'
7393 */
7394 L4_MABX_B.ThrottlePID_Y_c = L4_MABX_B.If_Then_Else_pi.Switch *
7395 L4_MABX_B.DataTypeConversion3_m * L4_MABX_P.Constant2_Value;
7396 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_B.ThrottlePID_Y_c;
7397 }
7398
7399 /* End of Switch: '<S79>/Switch' */
7400
7401 /* MultiPortSwitch: '<S83>/Multiport Switch' incorporates:
7402 * Constant: '<S83>/APTC_DISABLED_PEDAL_POSITION_APV'
7403 * Constant: '<S83>/APTC_PEDAL_POS_SIG_SOURCE_APV'
7404 */
7405 switch (L4_MABX_P.APTC_PEDAL_POS_SIG_SOURCE_APV_V) {
7406 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_DISABLED:
7407 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7408 break;
7409
7410 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00:
7411 L4_MABX_B.MultiportSwitch = L4_MABX_B.uDLookupTable;
7412 break;
7413
7414 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_SW_EMULATION:
7415 L4_MABX_B.MultiportSwitch = L4_MABX_B.ThrottlePID_Y_m;
7416 break;
7417
7418 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00_AND_SW_EMULATION:
7419 /* MinMax: '<S83>/MinMax' */
7420 DeltaTime = L4_MABX_B.uDLookupTable;
7421 PositionFinalLimited = L4_MABX_B.ThrottlePID_Y_m;
7422 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7423 PositionFinalLimited = DeltaTime;
7424 }
7425
7426 L4_MABX_B.MinMax_p = PositionFinalLimited;
7427
7428 /* End of MinMax: '<S83>/MinMax' */
7429 L4_MABX_B.MultiportSwitch = L4_MABX_B.MinMax_p;
7430 break;
7431
7432 default:
7433 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7434 break;
7435 }
7436
7437 /* End of MultiPortSwitch: '<S83>/Multiport Switch' */
7438
7439 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else1' */
7440 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_dy, L4_MABX_B.uDLookupTable,
7441 L4_MABX_B.MultiportSwitch, &L4_MABX_B.If_Then_Else1_lw);
7442
7443 /* End of Outputs for SubSystem: '<S83>/If_Then_Else1' */
7444
7445 /* DataTypeConversion: '<S82>/Data Type Conversion1' */
7446 L4_MABX_B.DataTypeConversion1_n3 = L4_MABX_B.SFunction1_o5_dc;
7447
7448 /* Lookup_n-D: '<S85>/2D_Lookup_Table' */
7449 L4_MABX_B.uD_Lookup_Table = look2_binlcapw(L4_MABX_B.If_Then_Else1_lw.Switch,
7450 L4_MABX_B.DataTypeConversion1_n3, APTC_TRQ_PED_INV_MAP_TRQ_STEPS,
7451 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_INV_MAP_PED_POS_MPV,
7452 L4_MABX_P.uD_Lookup_Table_maxIndex_h, 83U);
7453
7454 /* Logic: '<S82>/Logical Operator' */
7455 L4_MABX_B.LogicalOperator_j = !AutonomousEnabled;
7456
7457 /* Outputs for Atomic SubSystem: '<S82>/If_Then_Else' */
7458 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j, Pedal_pwm_position,
7459 L4_MABX_B.uD_Lookup_Table, &L4_MABX_B.If_Then_Else_fh);
7460
7461 /* End of Outputs for SubSystem: '<S82>/If_Then_Else' */
7462
7463 /* RelationalOperator: '<S75>/Relational Operator' incorporates:
7464 * Constant: '<S75>/Constant'
7465 */
7466 L4_MABX_B.APTC_arb_pedal_low_idl_sw_o = (APTC_PEDAL_LOW_IDLE_SW_THR_APV >
7467 L4_MABX_B.If_Then_Else_fh.Switch);
7468
7469 /* DataTypeConversion: '<S84>/Data Type Conversion1' */
7470 L4_MABX_B.DataTypeConversion1_a = L4_MABX_B.SPN544_EngineReferenceTorque;
7471
7472 /* RelationalOperator: '<S89>/Relational Operator1' incorporates:
7473 * Constant: '<S84>/EngRefTqLimHigh'
7474 */
7475 L4_MABX_B.RelationalOperator1_is = (L4_MABX_B.DataTypeConversion1_a >=
7476 L4_MABX_P.EngRefTqLimHigh_Value);
7477
7478 /* RelationalOperator: '<S89>/Relational Operator' incorporates:
7479 * Constant: '<S84>/EngRefTqLimLow'
7480 */
7481 L4_MABX_B.RelationalOperator_ca = (L4_MABX_B.DataTypeConversion1_a <=
7482 L4_MABX_P.EngRefTqLimLow_Value);
7483
7484 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else1' */
7485
7486 /* Constant: '<S84>/EngRefTqLimLow' */
7487 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_ca,
7488 L4_MABX_P.EngRefTqLimLow_Value,
7489 L4_MABX_B.DataTypeConversion1_a,
7490 &L4_MABX_B.If_Then_Else1_lol);
7491
7492 /* End of Outputs for SubSystem: '<S89>/If_Then_Else1' */
7493
7494 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else' */
7495
7496 /* Constant: '<S84>/EngRefTqLimHigh' */
7497 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_is,
7498 L4_MABX_P.EngRefTqLimHigh_Value,
7499 L4_MABX_B.If_Then_Else1_lol.Switch,
7500 &L4_MABX_B.If_Then_Else_ff);
7501
7502 /* End of Outputs for SubSystem: '<S89>/If_Then_Else' */
7503
7504 /* Sum: '<S84>/Subtract' incorporates:
7505 * Constant: '<S84>/FrictionTrqAtRefTrqSpeed'
7506 */
7507 L4_MABX_B.Subtract_j = L4_MABX_B.If_Then_Else_ff.Switch -
7508 L4_MABX_P.FrictionTrqAtRefTrqSpeed_Value;
7509
7510 /* Product: '<S84>/Divide' incorporates:
7511 * Constant: '<S84>/Constant1'
7512 */
7513 L4_MABX_B.Divide_h = L4_MABX_B.If_Then_Else1_lw.Switch *
7514 L4_MABX_P.Constant1_Value_fg / L4_MABX_B.Subtract_j;
7515
7516 /* RelationalOperator: '<S90>/Relational Operator1' incorporates:
7517 * Constant: '<S84>/APPTqPercentMax'
7518 */
7519 L4_MABX_B.RelationalOperator1_a = (L4_MABX_B.Divide_h >=
7520 L4_MABX_P.APPTqPercentMax_Value);
7521
7522 /* RelationalOperator: '<S90>/Relational Operator' incorporates:
7523 * Constant: '<S84>/APPTqPercentMin'
7524 */
7525 L4_MABX_B.RelationalOperator_n = (L4_MABX_B.Divide_h <=
7526 L4_MABX_P.APPTqPercentMin_Value);
7527
7528 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else1' */
7529
7530 /* Constant: '<S84>/APPTqPercentMin' */
7531 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_n,
7532 L4_MABX_P.APPTqPercentMin_Value, L4_MABX_B.Divide_h,
7533 &L4_MABX_B.If_Then_Else1_pf);
7534
7535 /* End of Outputs for SubSystem: '<S90>/If_Then_Else1' */
7536
7537 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else' */
7538
7539 /* Constant: '<S84>/APPTqPercentMax' */
7540 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_a,
7541 L4_MABX_P.APPTqPercentMax_Value,
7542 L4_MABX_B.If_Then_Else1_pf.Switch,
7543 &L4_MABX_B.If_Then_Else_iz);
7544
7545 /* End of Outputs for SubSystem: '<S90>/If_Then_Else' */
7546
7547 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch' incorporates:
7548 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
7549 * Constant: '<S76>/GhostMode'
7550 */
7551 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
7552 AutonomousOutputEnabled = AutonomousEnabled;
7553 } else {
7554 AutonomousOutputEnabled = (L4_MABX_P.GhostMode_Value != 0);
7555 }
7556
7557 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch' */
7558
7559 /* Switch: '<S76>/Switch' incorporates:
7560 * Constant: '<S76>/Failure'
7561 * Constant: '<S76>/Running'
7562 */
7563 if (EStop) {
7564 tmp_1 = L4_MABX_P.Running_Value;
7565 if (tmp_1 < 0) {
7566 tmp_1 = 0;
7567 }
7568
7569 MABX_Mode = (uint8_T)tmp_1;
7570 } else {
7571 tmp_1 = L4_MABX_P.Failure_Value;
7572 if (tmp_1 < 0) {
7573 tmp_1 = 0;
7574 }
7575
7576 MABX_Mode = (uint8_T)tmp_1;
7577 }
7578
7579 /* End of Switch: '<S76>/Switch' */
7580
7581 /* DataTypeConversion: '<S98>/Data Type Conversion2' */
7582 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_k);
7583 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7584 PositionFinalLimited = 0.0;
7585 } else {
7586 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7587 }
7588
7589 L4_MABX_B.DataTypeConversion2_ew = (uint8_T)(PositionFinalLimited < 0.0 ?
7590 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7591 (uint8_T)PositionFinalLimited);
7592
7593 /* End of DataTypeConversion: '<S98>/Data Type Conversion2' */
7594
7595 /* DataTypeConversion: '<S98>/Data Type Conversion' */
7596 L4_MABX_B.DataTypeConversion_lr = (ENUM_SWITCH_T)
7597 L4_MABX_B.DataTypeConversion2_ew;
7598
7599 /* DataTypeConversion: '<S98>/Data Type Conversion3' */
7600 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_ow);
7601 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7602 PositionFinalLimited = 0.0;
7603 } else {
7604 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7605 }
7606
7607 L4_MABX_B.DataTypeConversion3_ps = (uint8_T)(PositionFinalLimited < 0.0 ?
7608 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7609 (uint8_T)PositionFinalLimited);
7610
7611 /* End of DataTypeConversion: '<S98>/Data Type Conversion3' */
7612
7613 /* DataTypeConversion: '<S98>/Data Type Conversion1' */
7614 L4_MABX_B.DataTypeConversion1_lu = (ENUM_SWITCH_T)
7615 L4_MABX_B.DataTypeConversion3_ps;
7616
7617 /* RelationalOperator: '<S98>/Relational Operator3' incorporates:
7618 * Constant: '<S98>/CPV3'
7619 */
7620 L4_MABX_B.RelationalOperator3_c[0] = (L4_MABX_B.DataTypeConversion_lr ==
7621 L4_MABX_P.CPV3_Value_p);
7622 L4_MABX_B.RelationalOperator3_c[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7623 L4_MABX_P.CPV3_Value_p);
7624
7625 /* Logic: '<S98>/Logical Operator4' */
7626 L4_MABX_B.LogicalOperator4_o = (L4_MABX_B.RelationalOperator3_c[0] &&
7627 L4_MABX_B.RelationalOperator3_c[1]);
7628
7629 /* Gain: '<S98>/Gain4' */
7630 L4_MABX_B.Primary_brake_circuit_pressure_ = L4_MABX_P.Gain4_Gain *
7631 L4_MABX_B.PressureP42;
7632
7633 /* Gain: '<S98>/Gain5' */
7634 L4_MABX_B.Secondary_brake_circuit_pressur = L4_MABX_P.Gain5_Gain *
7635 L4_MABX_B.PressureP4;
7636
7637 /* RelationalOperator: '<S98>/Relational Operator4' incorporates:
7638 * Constant: '<S98>/BRAKE_APPL_THRESHOLD_KPA_APV'
7639 */
7640 L4_MABX_B.RelationalOperator4[0] = (L4_MABX_B.Primary_brake_circuit_pressure_ >
7641 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7642 L4_MABX_B.RelationalOperator4[1] = (L4_MABX_B.Secondary_brake_circuit_pressur >
7643 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7644
7645 /* Logic: '<S98>/Logical Operator3' */
7646 L4_MABX_B.F_Service_brake_pressure_applie = (L4_MABX_B.RelationalOperator4[0] ||
7647 L4_MABX_B.RelationalOperator4[1]);
7648
7649 /* RelationalOperator: '<S98>/Relational Operator6' incorporates:
7650 * Constant: '<S98>/CPV4'
7651 */
7652 L4_MABX_B.RelationalOperator6[0] = (L4_MABX_B.DataTypeConversion_lr ==
7653 L4_MABX_P.CPV4_Value_n);
7654 L4_MABX_B.RelationalOperator6[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7655 L4_MABX_P.CPV4_Value_n);
7656
7657 /* Logic: '<S98>/Logical Operator' */
7658 L4_MABX_B.F_Brake_sw_CAN = (L4_MABX_B.RelationalOperator6[0] ||
7659 L4_MABX_B.RelationalOperator6[1]);
7660
7661 /* Logic: '<S98>/Logical Operator5' */
7662 L4_MABX_B.LogicalOperator5_n = (L4_MABX_B.F_Service_brake_pressure_applie ||
7663 L4_MABX_B.F_Brake_sw_CAN);
7664
7665 /* Outputs for Atomic SubSystem: '<S98>/If_Then_Else' */
7666 L4_MABX_If_Then_Else_l(L4_MABX_B.LogicalOperator4_o,
7667 L4_MABX_B.F_Service_brake_pressure_applie, L4_MABX_B.LogicalOperator5_n,
7668 &L4_MABX_B.If_Then_Else_l);
7669
7670 /* End of Outputs for SubSystem: '<S98>/If_Then_Else' */
7671
7672 /* RelationalOperator: '<S102>/Relational Operator1' incorporates:
7673 * Constant: '<S102>/SPN904_ZERO_SPD_CPV'
7674 */
7675 L4_MABX_B.F_Vehicle_stopped = (L4_MABX_B.DataTypeConversion5_o <=
7676 L4_MABX_P.SPN904_ZERO_SPD_CPV_Value);
7677
7678 /* Sum: '<S99>/Add' */
7679 L4_MABX_B.Add_d = L4_MABX_B.Primary_brake_circuit_pressure_ +
7680 L4_MABX_B.Secondary_brake_circuit_pressur;
7681
7682 /* Gain: '<S99>/Gain' */
7683 L4_MABX_B.Gain_g = L4_MABX_P.Gain_Gain_g * L4_MABX_B.Add_d;
7684
7685 /* Outputs for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
7686 * EnablePort: '<S178>/Enable'
7687 */
7688 if (L4_MABX_DW.Determine_shift_interlock_brake) {
7689 /* Disable for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
7690 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
7691
7692 /* Disable for Outport: '<S178>/F_Shift_interlock_conditions_met' */
7693 L4_MABX_B.F_Shift_interlock_conditions_me =
7694 L4_MABX_P.F_Shift_interlock_conditions_me;
7695 L4_MABX_DW.Determine_shift_interlock_brake = false;
7696 }
7697
7698 /* End of Outputs for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
7699
7700 /* RelationalOperator: '<S200>/Compare' incorporates:
7701 * Constant: '<S200>/Constant'
7702 */
7703 L4_MABX_B.Compare_g4 = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
7704 L4_MABX_P.Constant_Value_ol);
7705
7706 /* RelationalOperator: '<S103>/Relational Operator4' */
7707 L4_MABX_B.RelationalOperator4_l = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b >=
7708 L4_MABX_B.DataTypeConversion5_o);
7709
7710 /* Logic: '<S103>/Logical Operator3' */
7711 L4_MABX_B.F_Hold_brakes_at_zero_d = (L4_MABX_B.F_Brake_control_active &&
7712 L4_MABX_B.Compare_g4 && L4_MABX_B.RelationalOperator4_l);
7713
7714 /* Outputs for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
7715 * EnablePort: '<S177>/Enable'
7716 */
7717 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7718 if (!L4_MABX_DW.Determine_brake_hold_pressure_t) {
7719 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
7720 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
7721
7722 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
7723 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
7724
7725 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
7726 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
7727 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
7728
7729 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
7730 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
7731 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
7732
7733 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
7734 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
7735 L4_MABX_DW.Determine_brake_hold_pressure_t = true;
7736 }
7737
7738 /* Logic: '<S177>/Logical Operator2' */
7739 L4_MABX_B.F_Brake_hold_conditions_met = (L4_MABX_B.If_Then_Else_l.Switch &&
7740 L4_MABX_B.F_Vehicle_stopped);
7741
7742 /* UnitDelay: '<S177>/Unit_Delay' */
7743 L4_MABX_B.Unit_Delay_a = L4_MABX_DW.Unit_Delay_DSTATE_c;
7744
7745 /* UnitDelay: '<S181>/Unit_Delay' */
7746 L4_MABX_B.Unit_Delay_h0 = L4_MABX_DW.Unit_Delay_DSTATE_or;
7747
7748 /* Logic: '<S181>/Logical Operator1' incorporates:
7749 * Constant: '<S177>/CPV1'
7750 */
7751 L4_MABX_B.LogicalOperator1_ou = (L4_MABX_P.CPV1_Value_p ||
7752 L4_MABX_B.Unit_Delay_h0);
7753
7754 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else1' */
7755
7756 /* Constant: '<S177>/CPV' */
7757 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7758 L4_MABX_B.Unit_Delay_a, L4_MABX_P.CPV_Value_k, &L4_MABX_B.If_Then_Else1_mf);
7759
7760 /* End of Outputs for SubSystem: '<S177>/If_Then_Else1' */
7761
7762 /* UnitDelay: '<S185>/FixPt Unit Delay2' */
7763 L4_MABX_B.FixPtUnitDelay2_d = L4_MABX_DW.FixPtUnitDelay2_DSTATE_je;
7764
7765 /* UnitDelay: '<S185>/FixPt Unit Delay1' */
7766 L4_MABX_B.Xold_b = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b;
7767
7768 /* Switch: '<S185>/Init' */
7769 if (L4_MABX_B.FixPtUnitDelay2_d != 0) {
7770 L4_MABX_B.Init_k = L4_MABX_B.If_Then_Else1_mf.Switch;
7771 } else {
7772 L4_MABX_B.Init_k = L4_MABX_B.Xold_b;
7773 }
7774
7775 /* End of Switch: '<S185>/Init' */
7776
7777 /* Abs: '<S181>/Abs' incorporates:
7778 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7779 */
7780 L4_MABX_B.Abs_b = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7781
7782 /* DigitalClock: '<S182>/Digital Clock' */
7783 L4_MABX_B.DigitalClock_c = L4_MABX_M->Timing.t[0];
7784
7785 /* UnitDelay: '<S182>/Unit_Delay' */
7786 L4_MABX_B.Unit_Delay_ka = L4_MABX_DW.Unit_Delay_DSTATE_oj;
7787
7788 /* Sum: '<S182>/Subtract' */
7789 L4_MABX_B.Subtract_ko = L4_MABX_B.DigitalClock_c - L4_MABX_B.Unit_Delay_ka;
7790
7791 /* Product: '<S181>/Product1' */
7792 L4_MABX_B.Product1_f = L4_MABX_B.Abs_b * L4_MABX_B.Subtract_ko;
7793
7794 /* Sum: '<S181>/Add1' */
7795 L4_MABX_B.Add1_c = L4_MABX_B.Init_k + L4_MABX_B.Product1_f;
7796
7797 /* MinMax: '<S181>/MinMax2' */
7798 DeltaTime = L4_MABX_B.If_Then_Else1_mf.Switch;
7799 PositionFinalLimited = L4_MABX_B.Add1_c;
7800 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7801 PositionFinalLimited = DeltaTime;
7802 }
7803
7804 L4_MABX_B.MinMax2_c2 = PositionFinalLimited;
7805
7806 /* End of MinMax: '<S181>/MinMax2' */
7807
7808 /* Abs: '<S181>/Abs1' incorporates:
7809 * Constant: '<S177>/BRAKE_PRESS_TARGET_SLEW_DEC_APV'
7810 */
7811 L4_MABX_B.Abs1_ar = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_DEC_APV);
7812
7813 /* Product: '<S181>/Product2' */
7814 L4_MABX_B.Product2_c3 = L4_MABX_B.Subtract_ko * L4_MABX_B.Abs1_ar;
7815
7816 /* Sum: '<S181>/Subtract1' */
7817 L4_MABX_B.Subtract1_ev = L4_MABX_B.Init_k - L4_MABX_B.Product2_c3;
7818
7819 /* MinMax: '<S181>/MinMax1' */
7820 DeltaTime = L4_MABX_B.MinMax2_c2;
7821 PositionFinalLimited = L4_MABX_B.Subtract1_ev;
7822 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7823 PositionFinalLimited = DeltaTime;
7824 }
7825
7826 L4_MABX_B.MinMax1_jw = PositionFinalLimited;
7827
7828 /* End of MinMax: '<S181>/MinMax1' */
7829
7830 /* Outputs for Atomic SubSystem: '<S181>/If_Then_Else' */
7831 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_ou, L4_MABX_B.Gain_g,
7832 L4_MABX_B.MinMax1_jw, &L4_MABX_B.If_Then_Else_nz);
7833
7834 /* End of Outputs for SubSystem: '<S181>/If_Then_Else' */
7835
7836 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else' */
7837 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7838 L4_MABX_B.Unit_Delay_a, L4_MABX_B.If_Then_Else_nz.Switch,
7839 &L4_MABX_B.If_Then_Else_gj);
7840
7841 /* End of Outputs for SubSystem: '<S177>/If_Then_Else' */
7842
7843 /* RelationalOperator: '<S183>/min_relop' incorporates:
7844 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7845 * Constant: '<S183>/min_val'
7846 */
7847 L4_MABX_B.min_relop_i = (L4_MABX_P.CheckStaticLowerBound_min_i <=
7848 L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7849
7850 /* Assertion: '<S183>/Assertion' */
7851 utAssert(L4_MABX_B.min_relop_i);
7852 } else {
7853 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
7854 /* Disable for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
7855 L4_MABX_B.If_Then_Else_gj.Switch =
7856 L4_MABX_P.Brake_hold_brake_press_target_k;
7857
7858 /* Disable for Outport: '<S177>/F_Brake_hold_conditions_met' */
7859 L4_MABX_B.F_Brake_hold_conditions_met =
7860 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
7861 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
7862 }
7863 }
7864
7865 /* End of Outputs for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
7866
7867 /* MinMax: '<S99>/MinMax' */
7868 DeltaTime = L4_MABX_B.If_Then_Else_il.Switch;
7869 PositionFinalLimited = L4_MABX_B.If_Then_Else_gj.Switch;
7870 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7871 PositionFinalLimited = DeltaTime;
7872 }
7873
7874 L4_MABX_B.Brake_pressure_target_kpa = PositionFinalLimited;
7875
7876 /* End of MinMax: '<S99>/MinMax' */
7877
7878 /* Gain: '<S98>/Gain1' */
7879 L4_MABX_B.Bendix_2C2_Primary_brake_circui = L4_MABX_P.Gain1_Gain *
7880 L4_MABX_B.PressureP21;
7881
7882 /* Gain: '<S98>/Gain2' */
7883 L4_MABX_B.Bendix_2C2_Secondary_brake_circ = L4_MABX_P.Gain2_Gain *
7884 L4_MABX_B.PressureP22;
7885
7886 /* Sum: '<S100>/Add' */
7887 L4_MABX_B.Add_n = L4_MABX_B.Primary_brake_circuit_pressure_ +
7888 L4_MABX_B.Secondary_brake_circuit_pressur;
7889
7890 /* Gain: '<S100>/Gain' */
7891 L4_MABX_B.brake_system_avg_appl_pressure_ = L4_MABX_P.Gain_Gain_i *
7892 L4_MABX_B.Add_n;
7893
7894 /* Gain: '<S98>/Gain3' */
7895 L4_MABX_B.Primary_brake_circuit_pressur_n = L4_MABX_P.Gain3_Gain *
7896 L4_MABX_B.PressureP1;
7897
7898 /* Product: '<S100>/Divide2' */
7899 L4_MABX_B.Divide2 = L4_MABX_B.brake_system_avg_appl_pressure_ /
7900 L4_MABX_B.Primary_brake_circuit_pressur_n;
7901
7902 /* Gain: '<S100>/Gain5' */
7903 L4_MABX_B.Gain5 = L4_MABX_P.Gain5_Gain_l * L4_MABX_B.Divide2;
7904
7905 /* Saturate: '<S100>/Saturation3' */
7906 DeltaTime = L4_MABX_B.Gain5;
7907 Time56 = L4_MABX_P.Saturation3_LowerSat;
7908 PositionFinalLimited = L4_MABX_P.Saturation3_UpperSat;
7909 if (DeltaTime > PositionFinalLimited) {
7910 L4_MABX_B.Brake_appl_percent = PositionFinalLimited;
7911 } else if (DeltaTime < Time56) {
7912 L4_MABX_B.Brake_appl_percent = Time56;
7913 } else {
7914 L4_MABX_B.Brake_appl_percent = DeltaTime;
7915 }
7916
7917 /* End of Saturate: '<S100>/Saturation3' */
7918
7919 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
7920 * EnablePort: '<S96>/Enable'
7921 */
7922 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7923 if (!L4_MABX_DW.Bendix_2C2_brake_application_pr) {
7924 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
7925 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
7926
7927 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
7928 L4_MABX_DW.Unit_Delay_DSTATE_omj =
7929 L4_MABX_P.Unit_Delay_InitialCondition_lt;
7930
7931 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
7932 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
7933
7934 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
7935 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
7936
7937 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
7938 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
7939 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
7940
7941 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
7942 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
7943 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
7944
7945 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
7946 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
7947
7948 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
7949 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
7950 L4_MABX_DW.Bendix_2C2_brake_application_pr = true;
7951 }
7952
7953 /* Sum: '<S96>/Add' */
7954 L4_MABX_B.Add_my = L4_MABX_B.Bendix_2C2_Primary_brake_circui +
7955 L4_MABX_B.Bendix_2C2_Secondary_brake_circ;
7956
7957 /* Gain: '<S96>/Gain' */
7958 L4_MABX_B.Gain_iv = L4_MABX_P.Gain_Gain * L4_MABX_B.Add_my;
7959
7960 /* Abs: '<S106>/Abs' incorporates:
7961 * Constant: '<S96>/BRK_PRESS_DEM_KI_APV'
7962 */
7963 L4_MABX_B.Abs_k4 = fabs(L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value);
7964
7965 /* Abs: '<S106>/Abs1' incorporates:
7966 * Constant: '<S96>/BRK_PRESS_DEM_KD_APV'
7967 */
7968 L4_MABX_B.Abs1_ap = fabs(L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value);
7969
7970 /* DigitalClock: '<S105>/Digital Clock' */
7971 L4_MABX_B.DigitalClock_j = L4_MABX_M->Timing.t[0];
7972
7973 /* UnitDelay: '<S105>/Unit_Delay' */
7974 L4_MABX_B.Unit_Delay_j = L4_MABX_DW.Unit_Delay_DSTATE_d;
7975
7976 /* Sum: '<S105>/Subtract' */
7977 L4_MABX_B.Subtract_jr = L4_MABX_B.DigitalClock_j - L4_MABX_B.Unit_Delay_j;
7978
7979 /* UnitDelay: '<S109>/Unit_Delay' */
7980 L4_MABX_B.Unit_Delay_nm = L4_MABX_DW.Unit_Delay_DSTATE_omj;
7981
7982 /* Logic: '<S109>/Logical Operator1' incorporates:
7983 * Constant: '<S96>/CPV2'
7984 */
7985 L4_MABX_B.LogicalOperator1_ax = (L4_MABX_B.Unit_Delay_nm ||
7986 L4_MABX_P.CPV2_Value_m);
7987
7988 /* UnitDelay: '<S129>/Unit_Delay1' */
7989 L4_MABX_B.Unit_Delay1_i = L4_MABX_DW.Unit_Delay1_DSTATE_b;
7990
7991 /* Logic: '<S129>/Logical Operator' */
7992 L4_MABX_B.LogicalOperator_mu = (L4_MABX_B.LogicalOperator1_ax ||
7993 L4_MABX_B.Unit_Delay1_i);
7994
7995 /* UnitDelay: '<S130>/Unit_Delay' */
7996 L4_MABX_B.Unit_Delay_nlp = L4_MABX_DW.Unit_Delay_DSTATE_h4;
7997
7998 /* Logic: '<S130>/Logical Operator1' */
7999 L4_MABX_B.LogicalOperator1_mk = (L4_MABX_B.LogicalOperator1_ax ||
8000 L4_MABX_B.Unit_Delay_nlp);
8001
8002 /* UnitDelay: '<S134>/FixPt Unit Delay2' */
8003 L4_MABX_B.FixPtUnitDelay2_op = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm;
8004
8005 /* UnitDelay: '<S134>/FixPt Unit Delay1' */
8006 L4_MABX_B.Xold_g3 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1;
8007
8008 /* Switch: '<S134>/Init' */
8009 if (L4_MABX_B.FixPtUnitDelay2_op != 0) {
8010 L4_MABX_B.Init_hw = L4_MABX_B.Brake_pressure_target_kpa;
8011 } else {
8012 L4_MABX_B.Init_hw = L4_MABX_B.Xold_g3;
8013 }
8014
8015 /* End of Switch: '<S134>/Init' */
8016
8017 /* Abs: '<S130>/Abs' incorporates:
8018 * Constant: '<S96>/CPV4'
8019 */
8020 L4_MABX_B.Abs_l = fabs(L4_MABX_P.CPV4_Value);
8021
8022 /* Product: '<S130>/Product1' */
8023 L4_MABX_B.Product1_b = L4_MABX_B.Abs_l * L4_MABX_B.Subtract_jr;
8024
8025 /* Sum: '<S130>/Add1' */
8026 L4_MABX_B.Add1_hu = L4_MABX_B.Init_hw + L4_MABX_B.Product1_b;
8027
8028 /* MinMax: '<S130>/MinMax2' */
8029 DeltaTime = L4_MABX_B.Brake_pressure_target_kpa;
8030 PositionFinalLimited = L4_MABX_B.Add1_hu;
8031 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8032 PositionFinalLimited = DeltaTime;
8033 }
8034
8035 L4_MABX_B.MinMax2_b = PositionFinalLimited;
8036
8037 /* End of MinMax: '<S130>/MinMax2' */
8038
8039 /* Abs: '<S130>/Abs1' incorporates:
8040 * Constant: '<S96>/CPV5'
8041 */
8042 L4_MABX_B.Abs1_d1 = fabs(L4_MABX_P.CPV5_Value);
8043
8044 /* Product: '<S130>/Product2' */
8045 L4_MABX_B.Product2_d = L4_MABX_B.Subtract_jr * L4_MABX_B.Abs1_d1;
8046
8047 /* Sum: '<S130>/Subtract1' */
8048 L4_MABX_B.Subtract1_a = L4_MABX_B.Init_hw - L4_MABX_B.Product2_d;
8049
8050 /* MinMax: '<S130>/MinMax1' */
8051 DeltaTime = L4_MABX_B.MinMax2_b;
8052 PositionFinalLimited = L4_MABX_B.Subtract1_a;
8053 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8054 PositionFinalLimited = DeltaTime;
8055 }
8056
8057 L4_MABX_B.MinMax1_ps = PositionFinalLimited;
8058
8059 /* End of MinMax: '<S130>/MinMax1' */
8060
8061 /* Outputs for Atomic SubSystem: '<S130>/If_Then_Else' */
8062 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_mk, L4_MABX_B.Gain_iv,
8063 L4_MABX_B.MinMax1_ps, &L4_MABX_B.If_Then_Else_bg);
8064
8065 /* End of Outputs for SubSystem: '<S130>/If_Then_Else' */
8066
8067 /* Sum: '<S107>/Subtract' */
8068 L4_MABX_B.Subtract_n = L4_MABX_B.If_Then_Else_bg.Switch - L4_MABX_B.Gain_iv;
8069
8070 /* MinMax: '<S129>/MinMax1' incorporates:
8071 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_CTRL_ERROR_APV'
8072 */
8073 DeltaTime = L4_MABX_B.Subtract_jr;
8074 PositionFinalLimited = L4_MABX_P.BRK_PRESS_DEM_T_FILT_CTRL_ERROR;
8075 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8076 PositionFinalLimited = DeltaTime;
8077 }
8078
8079 L4_MABX_B.MinMax1_h1 = PositionFinalLimited;
8080
8081 /* End of MinMax: '<S129>/MinMax1' */
8082
8083 /* Saturate: '<S129>/Saturation' */
8084 DeltaTime = L4_MABX_B.MinMax1_h1;
8085 Time56 = L4_MABX_P.Saturation_LowerSat;
8086 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat;
8087 if (DeltaTime > PositionFinalLimited) {
8088 L4_MABX_B.Saturation_p = PositionFinalLimited;
8089 } else if (DeltaTime < Time56) {
8090 L4_MABX_B.Saturation_p = Time56;
8091 } else {
8092 L4_MABX_B.Saturation_p = DeltaTime;
8093 }
8094
8095 /* End of Saturate: '<S129>/Saturation' */
8096
8097 /* Product: '<S129>/Divide' */
8098 L4_MABX_B.Divide_lm = L4_MABX_B.Subtract_jr / L4_MABX_B.Saturation_p;
8099
8100 /* Product: '<S129>/Product2' */
8101 L4_MABX_B.Product2_kj = L4_MABX_B.Subtract_n * L4_MABX_B.Divide_lm;
8102
8103 /* Sum: '<S129>/Subtract1' incorporates:
8104 * Constant: '<S129>/Constant1'
8105 */
8106 L4_MABX_B.Subtract1_p = L4_MABX_P.Constant1_Value - L4_MABX_B.Divide_lm;
8107
8108 /* UnitDelay: '<S129>/Unit_Delay2' */
8109 L4_MABX_B.Unit_Delay2_d = L4_MABX_DW.Unit_Delay2_DSTATE_dy;
8110
8111 /* Product: '<S129>/Product1' */
8112 L4_MABX_B.Product1_c3 = L4_MABX_B.Subtract1_p * L4_MABX_B.Unit_Delay2_d;
8113
8114 /* Sum: '<S129>/Add1' */
8115 L4_MABX_B.Add1_i1 = L4_MABX_B.Product2_kj + L4_MABX_B.Product1_c3;
8116
8117 /* Outputs for Atomic SubSystem: '<S129>/If_Then_Else' */
8118 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mu, L4_MABX_B.Subtract_n,
8119 L4_MABX_B.Add1_i1, &L4_MABX_B.If_Then_Else_ly);
8120
8121 /* End of Outputs for SubSystem: '<S129>/If_Then_Else' */
8122
8123 /* RelationalOperator: '<S114>/Compare' incorporates:
8124 * Constant: '<S114>/Constant'
8125 */
8126 L4_MABX_B.Compare_aa = (L4_MABX_B.Abs1_ap >
8127 L4_MABX_P.CompareToConstant1_const);
8128
8129 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' */
8130
8131 /* Constant: '<S96>/BRK_PRESS_DEM_KD_APV' incorporates:
8132 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_D_APV'
8133 */
8134 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_aa,
8135 L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value, L4_MABX_B.Subtract_jr,
8136 L4_MABX_B.LogicalOperator1_ax, L4_MABX_B.If_Then_Else_ly.Switch,
8137 L4_MABX_P.BRK_PRESS_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term,
8138 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8139
8140 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
8141
8142 /* Product: '<S112>/Product' incorporates:
8143 * Constant: '<S96>/BRK_PRESS_DEM_KP_APV'
8144 */
8145 L4_MABX_B.Product_iq = L4_MABX_P.BRK_PRESS_DEM_KP_APV_Value *
8146 L4_MABX_B.If_Then_Else_ly.Switch;
8147
8148 /* UnitDelay: '<S104>/Unit_Delay' */
8149 L4_MABX_B.Unit_Delay_ja = L4_MABX_DW.Unit_Delay_DSTATE_i;
8150
8151 /* RelationalOperator: '<S113>/Compare' incorporates:
8152 * Constant: '<S113>/Constant'
8153 */
8154 L4_MABX_B.Compare_jrp = (L4_MABX_B.Abs_k4 >
8155 L4_MABX_P.CompareToConstant_const);
8156
8157 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' */
8158
8159 /* Constant: '<S96>/BRK_PRESS_DEM_KI_APV' incorporates:
8160 * Constant: '<S96>/BRK_PRESS_DEM_AW_COND_INT_APV'
8161 * Constant: '<S96>/BRK_PRESS_DEM_AW_HYSTERESIS_APV'
8162 * Constant: '<S96>/CPV1'
8163 * Constant: '<S96>/CPV3'
8164 */
8165 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_jrp, L4_MABX_B.Product_iq,
8166 L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value, L4_MABX_B.Brake_appl_percent,
8167 L4_MABX_B.If_Then_Else_ly.Switch, L4_MABX_B.LogicalOperator1_ax,
8168 L4_MABX_B.Subtract_jr, L4_MABX_P.CPV3_Value,
8169 L4_MABX_P.BRK_PRESS_DEM_AW_COND_INT_APV_V,
8170 L4_MABX_P.BRK_PRESS_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_g,
8171 L4_MABX_B.Unit_Delay_ja, &L4_MABX_B.Calculate_I_term,
8172 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8173
8174 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
8175
8176 /* RelationalOperator: '<S132>/min_relop' incorporates:
8177 * Constant: '<S132>/min_val'
8178 * Constant: '<S96>/CPV4'
8179 */
8180 L4_MABX_B.min_relop_p = (L4_MABX_P.CheckStaticLowerBound_min <=
8181 L4_MABX_P.CPV4_Value);
8182
8183 /* Assertion: '<S132>/Assertion' */
8184 utAssert(L4_MABX_B.min_relop_p);
8185
8186 /* Sum: '<S108>/Add' incorporates:
8187 * Constant: '<S96>/CPV3'
8188 */
8189 L4_MABX_B.Add_e = ((L4_MABX_B.Product_iq +
8190 L4_MABX_B.Calculate_I_term.If_Then_Else.Switch) +
8191 L4_MABX_B.Calculate_D_term.Subtract) +
8192 L4_MABX_P.CPV3_Value;
8193
8194 /* RelationalOperator: '<S135>/Relational Operator1' incorporates:
8195 * Constant: '<S96>/CPV6'
8196 */
8197 L4_MABX_B.RelationalOperator1_gi = (L4_MABX_B.Add_e >= L4_MABX_P.CPV6_Value);
8198
8199 /* RelationalOperator: '<S135>/Relational Operator' incorporates:
8200 * Constant: '<S96>/CPV'
8201 */
8202 L4_MABX_B.RelationalOperator_b = (L4_MABX_B.Add_e <= L4_MABX_P.CPV_Value);
8203
8204 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else1' */
8205
8206 /* Constant: '<S96>/CPV' */
8207 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_b, L4_MABX_P.CPV_Value,
8208 L4_MABX_B.Add_e, &L4_MABX_B.If_Then_Else1_b);
8209
8210 /* End of Outputs for SubSystem: '<S135>/If_Then_Else1' */
8211
8212 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else' */
8213
8214 /* Constant: '<S96>/CPV6' */
8215 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gi, L4_MABX_P.CPV6_Value,
8216 L4_MABX_B.If_Then_Else1_b.Switch,
8217 &L4_MABX_B.If_Then_Else_nj);
8218
8219 /* End of Outputs for SubSystem: '<S135>/If_Then_Else' */
8220 } else {
8221 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
8222 /* Disable for Enabled SubSystem: '<S106>/Calculate_D_term' */
8223 if (L4_MABX_DW.Calculate_D_term.Calculate_D_term_MODE) {
8224 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term,
8225 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8226 }
8227
8228 /* End of Disable for SubSystem: '<S106>/Calculate_D_term' */
8229
8230 /* Disable for Enabled SubSystem: '<S106>/Calculate_I_term' */
8231 if (L4_MABX_DW.Calculate_I_term.Calculate_I_term_MODE) {
8232 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term,
8233 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8234 }
8235
8236 /* End of Disable for SubSystem: '<S106>/Calculate_I_term' */
8237
8238 /* Disable for Outport: '<S96>/PID_output' */
8239 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
8240 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
8241 }
8242 }
8243
8244 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
8245
8246 /* RelationalOperator: '<S381>/Compare' incorporates:
8247 * Constant: '<S381>/Constant'
8248 */
8249 L4_MABX_B.Compare_ey = (L4_MABX_B.SFunction1_o4_e2 ==
8250 L4_MABX_P.CompareToConstant9_const);
8251
8252 /* RelationalOperator: '<S378>/Compare' incorporates:
8253 * Constant: '<S378>/Constant'
8254 */
8255 L4_MABX_B.Compare_jb = (L4_MABX_B.SFunction1_o5_g ==
8256 L4_MABX_P.CompareToConstant10_const);
8257
8258 /* RelationalOperator: '<S379>/Compare' incorporates:
8259 * Constant: '<S379>/Constant'
8260 */
8261 L4_MABX_B.Compare_hc = (L4_MABX_B.SFunction1_o6_c ==
8262 L4_MABX_P.CompareToConstant11_const);
8263
8264 /* RelationalOperator: '<S380>/Compare' incorporates:
8265 * Constant: '<S380>/Constant'
8266 */
8267 L4_MABX_B.Compare_b = (L4_MABX_B.SFunction1_o7_k ==
8268 L4_MABX_P.CompareToConstant12_const);
8269
8270 /* Logic: '<S341>/Logical Operator2' */
8271 L4_MABX_B.LogicalOperator2_f5 = (L4_MABX_B.Compare_ey || L4_MABX_B.Compare_jb ||
8272 L4_MABX_B.Compare_hc || L4_MABX_B.Compare_b);
8273
8274 /* UnitDelay: '<S383>/Unit_Delay' */
8275 L4_MABX_B.Unit_Delay_ot = L4_MABX_DW.Unit_Delay_DSTATE_cx;
8276
8277 /* Logic: '<S383>/Logical Operator1' */
8278 L4_MABX_B.LogicalOperator1_j = !L4_MABX_B.Unit_Delay_ot;
8279
8280 /* Logic: '<S383>/Logical Operator' */
8281 L4_MABX_B.LogicalOperator_f = (L4_MABX_B.LogicalOperator2_f5 &&
8282 L4_MABX_B.LogicalOperator1_j);
8283
8284 /* UnitDelay: '<S384>/Unit_Delay' */
8285 L4_MABX_B.Unit_Delay_jz = L4_MABX_DW.Unit_Delay_DSTATE_d0;
8286
8287 /* Logic: '<S384>/Logical Operator1' */
8288 L4_MABX_B.LogicalOperator1_a = (L4_MABX_B.LogicalOperator_f ||
8289 L4_MABX_B.Unit_Delay_jz);
8290
8291 /* UnitDelay: '<S341>/Unit_Delay' */
8292 L4_MABX_B.Unit_Delay_k4 = L4_MABX_DW.Unit_Delay_DSTATE_e;
8293
8294 /* MinMax: '<S341>/MinMax' */
8295 DeltaTime = L4_MABX_B.Unit_Delay_k4;
8296 PositionFinalLimited = L4_MABX_B.SFunction1_o1_h54;
8297 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8298 PositionFinalLimited = DeltaTime;
8299 }
8300
8301 L4_MABX_B.MinMax_d = PositionFinalLimited;
8302
8303 /* End of MinMax: '<S341>/MinMax' */
8304
8305 /* Outputs for Atomic SubSystem: '<S341>/If_Then_Else4' */
8306
8307 /* Constant: '<S341>/STABILITY_ACTIVE_VSPD_TARGET_APV' incorporates:
8308 * Constant: '<S341>/Constant4'
8309 */
8310 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator2_f5,
8311 L4_MABX_P.STABILITY_ACTIVE_VSPD_TARGET_AP,
8312 L4_MABX_P.Constant4_Value_n, &L4_MABX_B.If_Then_Else4_h);
8313
8314 /* End of Outputs for SubSystem: '<S341>/If_Then_Else4' */
8315
8316 /* UnitDelay: '<S388>/FixPt Unit Delay2' */
8317 L4_MABX_B.FixPtUnitDelay2_b2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_a;
8318
8319 /* UnitDelay: '<S388>/FixPt Unit Delay1' */
8320 L4_MABX_B.Xold_h = L4_MABX_DW.FixPtUnitDelay1_DSTATE_h;
8321
8322 /* Switch: '<S388>/Init' */
8323 if (L4_MABX_B.FixPtUnitDelay2_b2 != 0) {
8324 L4_MABX_B.Init_ip = L4_MABX_B.If_Then_Else4_h.Switch;
8325 } else {
8326 L4_MABX_B.Init_ip = L4_MABX_B.Xold_h;
8327 }
8328
8329 /* End of Switch: '<S388>/Init' */
8330
8331 /* Abs: '<S384>/Abs' incorporates:
8332 * Constant: '<S341>/STABILITY_CTRL_SLEW_INC_APV'
8333 */
8334 L4_MABX_B.Abs_e = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
8335
8336 /* DigitalClock: '<S385>/Digital Clock' */
8337 L4_MABX_B.DigitalClock = L4_MABX_M->Timing.t[0];
8338
8339 /* UnitDelay: '<S385>/Unit_Delay' */
8340 L4_MABX_B.Unit_Delay_d = L4_MABX_DW.Unit_Delay_DSTATE_m;
8341
8342 /* Sum: '<S385>/Subtract' */
8343 L4_MABX_B.Subtract_l = L4_MABX_B.DigitalClock - L4_MABX_B.Unit_Delay_d;
8344
8345 /* Product: '<S384>/Product1' */
8346 L4_MABX_B.Product1_hp = L4_MABX_B.Abs_e * L4_MABX_B.Subtract_l;
8347
8348 /* Sum: '<S384>/Add1' */
8349 L4_MABX_B.Add1_n = L4_MABX_B.Init_ip + L4_MABX_B.Product1_hp;
8350
8351 /* MinMax: '<S384>/MinMax2' */
8352 DeltaTime = L4_MABX_B.If_Then_Else4_h.Switch;
8353 PositionFinalLimited = L4_MABX_B.Add1_n;
8354 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8355 PositionFinalLimited = DeltaTime;
8356 }
8357
8358 L4_MABX_B.MinMax2_g = PositionFinalLimited;
8359
8360 /* End of MinMax: '<S384>/MinMax2' */
8361
8362 /* Abs: '<S384>/Abs1' incorporates:
8363 * Constant: '<S341>/STABILITY_CTRL_SLEW_DEC_APV'
8364 */
8365 L4_MABX_B.Abs1_h = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_DEC_APV_Val);
8366
8367 /* Product: '<S384>/Product2' */
8368 L4_MABX_B.Product2_c = L4_MABX_B.Subtract_l * L4_MABX_B.Abs1_h;
8369
8370 /* Sum: '<S384>/Subtract1' */
8371 L4_MABX_B.Subtract1_n = L4_MABX_B.Init_ip - L4_MABX_B.Product2_c;
8372
8373 /* MinMax: '<S384>/MinMax1' */
8374 DeltaTime = L4_MABX_B.MinMax2_g;
8375 PositionFinalLimited = L4_MABX_B.Subtract1_n;
8376 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8377 PositionFinalLimited = DeltaTime;
8378 }
8379
8380 L4_MABX_B.MinMax1_hj = PositionFinalLimited;
8381
8382 /* End of MinMax: '<S384>/MinMax1' */
8383
8384 /* Outputs for Atomic SubSystem: '<S384>/If_Then_Else' */
8385 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_a, L4_MABX_B.MinMax_d,
8386 L4_MABX_B.MinMax1_hj, &L4_MABX_B.If_Then_Else_m4);
8387
8388 /* End of Outputs for SubSystem: '<S384>/If_Then_Else' */
8389
8390 /* RelationalOperator: '<S369>/Compare' incorporates:
8391 * Constant: '<S369>/Constant'
8392 */
8393 L4_MABX_B.Compare_d = (L4_MABX_B.ACCDistanceAlertSignal ==
8394 L4_MABX_P.CompareToConstant3_const);
8395
8396 /* RelationalOperator: '<S370>/Compare' incorporates:
8397 * Constant: '<S370>/Constant'
8398 */
8399 L4_MABX_B.Compare_dv = (L4_MABX_B.ForwardCollisionWarning ==
8400 L4_MABX_P.CompareToConstant8_const);
8401
8402 /* Logic: '<S339>/Logical Operator1' */
8403 L4_MABX_B.LogicalOperator1_g = (L4_MABX_B.Compare_d || L4_MABX_B.Compare_dv);
8404
8405 /* UnitDelay: '<S372>/Unit_Delay' */
8406 L4_MABX_B.Unit_Delay_hz = L4_MABX_DW.Unit_Delay_DSTATE_iy;
8407
8408 /* Logic: '<S372>/Logical Operator1' */
8409 L4_MABX_B.LogicalOperator1_jp = !L4_MABX_B.Unit_Delay_hz;
8410
8411 /* Logic: '<S372>/Logical Operator' */
8412 L4_MABX_B.LogicalOperator_kf = (L4_MABX_B.LogicalOperator1_g &&
8413 L4_MABX_B.LogicalOperator1_jp);
8414
8415 /* UnitDelay: '<S373>/Unit_Delay' */
8416 L4_MABX_B.Unit_Delay_c4 = L4_MABX_DW.Unit_Delay_DSTATE_mv;
8417
8418 /* Logic: '<S373>/Logical Operator1' */
8419 L4_MABX_B.LogicalOperator1_l4 = (L4_MABX_B.LogicalOperator_kf ||
8420 L4_MABX_B.Unit_Delay_c4);
8421
8422 /* UnitDelay: '<S339>/Unit_Delay' */
8423 L4_MABX_B.Unit_Delay_n = L4_MABX_DW.Unit_Delay_DSTATE_g;
8424
8425 /* MinMax: '<S339>/MinMax' */
8426 DeltaTime = L4_MABX_B.Unit_Delay_n;
8427 PositionFinalLimited = L4_MABX_B.SFunction1_o1_h54;
8428 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8429 PositionFinalLimited = DeltaTime;
8430 }
8431
8432 L4_MABX_B.MinMax_n = PositionFinalLimited;
8433
8434 /* End of MinMax: '<S339>/MinMax' */
8435
8436 /* Outputs for Atomic SubSystem: '<S339>/If_Then_Else4' */
8437
8438 /* Constant: '<S339>/FCW_ACTIVE_VSPD_TARGET_APV' incorporates:
8439 * Constant: '<S339>/Constant4'
8440 */
8441 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_g,
8442 L4_MABX_P.FCW_ACTIVE_VSPD_TARGET_APV_Valu,
8443 L4_MABX_P.Constant4_Value_b, &L4_MABX_B.If_Then_Else4_e);
8444
8445 /* End of Outputs for SubSystem: '<S339>/If_Then_Else4' */
8446
8447 /* UnitDelay: '<S377>/FixPt Unit Delay2' */
8448 L4_MABX_B.FixPtUnitDelay2_p = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip;
8449
8450 /* UnitDelay: '<S377>/FixPt Unit Delay1' */
8451 L4_MABX_B.Xold_f = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq;
8452
8453 /* Switch: '<S377>/Init' */
8454 if (L4_MABX_B.FixPtUnitDelay2_p != 0) {
8455 L4_MABX_B.Init_b = L4_MABX_B.If_Then_Else4_e.Switch;
8456 } else {
8457 L4_MABX_B.Init_b = L4_MABX_B.Xold_f;
8458 }
8459
8460 /* End of Switch: '<S377>/Init' */
8461
8462 /* Abs: '<S373>/Abs' incorporates:
8463 * Constant: '<S339>/FCW_CTRL_SLEW_INC_APV'
8464 */
8465 L4_MABX_B.Abs_ez = fabs(L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
8466
8467 /* DigitalClock: '<S374>/Digital Clock' */
8468 L4_MABX_B.DigitalClock_b = L4_MABX_M->Timing.t[0];
8469
8470 /* UnitDelay: '<S374>/Unit_Delay' */
8471 L4_MABX_B.Unit_Delay_nx = L4_MABX_DW.Unit_Delay_DSTATE_b;
8472
8473 /* Sum: '<S374>/Subtract' */
8474 L4_MABX_B.Subtract_i = L4_MABX_B.DigitalClock_b - L4_MABX_B.Unit_Delay_nx;
8475
8476 /* Product: '<S373>/Product1' */
8477 L4_MABX_B.Product1_i = L4_MABX_B.Abs_ez * L4_MABX_B.Subtract_i;
8478
8479 /* Sum: '<S373>/Add1' */
8480 L4_MABX_B.Add1_b = L4_MABX_B.Init_b + L4_MABX_B.Product1_i;
8481
8482 /* MinMax: '<S373>/MinMax2' */
8483 DeltaTime = L4_MABX_B.If_Then_Else4_e.Switch;
8484 PositionFinalLimited = L4_MABX_B.Add1_b;
8485 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8486 PositionFinalLimited = DeltaTime;
8487 }
8488
8489 L4_MABX_B.MinMax2_k = PositionFinalLimited;
8490
8491 /* End of MinMax: '<S373>/MinMax2' */
8492
8493 /* Abs: '<S373>/Abs1' incorporates:
8494 * Constant: '<S339>/FCW_CTRL_SLEW_DEC_APV'
8495 */
8496 L4_MABX_B.Abs1_c = fabs(L4_MABX_P.FCW_CTRL_SLEW_DEC_APV_Value);
8497
8498 /* Product: '<S373>/Product2' */
8499 L4_MABX_B.Product2_nl = L4_MABX_B.Subtract_i * L4_MABX_B.Abs1_c;
8500
8501 /* Sum: '<S373>/Subtract1' */
8502 L4_MABX_B.Subtract1_h = L4_MABX_B.Init_b - L4_MABX_B.Product2_nl;
8503
8504 /* MinMax: '<S373>/MinMax1' */
8505 DeltaTime = L4_MABX_B.MinMax2_k;
8506 PositionFinalLimited = L4_MABX_B.Subtract1_h;
8507 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8508 PositionFinalLimited = DeltaTime;
8509 }
8510
8511 L4_MABX_B.MinMax1_j = PositionFinalLimited;
8512
8513 /* End of MinMax: '<S373>/MinMax1' */
8514
8515 /* Outputs for Atomic SubSystem: '<S373>/If_Then_Else' */
8516 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_l4, L4_MABX_B.MinMax_n,
8517 L4_MABX_B.MinMax1_j, &L4_MABX_B.If_Then_Else_bf);
8518
8519 /* End of Outputs for SubSystem: '<S373>/If_Then_Else' */
8520
8521 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
8522 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8523 L4_MABX_B.pathSpdLimit_a = L4_MABX_DW.TmpRTBAtSignalConversion3Inport;
8524 }
8525
8526 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8527 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8528 */
8529 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8530 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8531 /* SignalConversion: '<S81>/Signal Conversion3' */
8532 L4_MABX_B.Vehicle_speed_abs_max_e = L4_MABX_B.pathSpdLimit_a;
8533 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_e;
8534 break;
8535
8536 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8537 /* SignalConversion: '<S81>/Signal Conversion8' incorporates:
8538 * Constant: '<S81>/VSPD_ABS_MAX_APV'
8539 */
8540 L4_MABX_B.Vehicle_speed_abs_max_j = L4_MABX_P.VSPD_ABS_MAX_APV_Value;
8541 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_j;
8542 break;
8543
8544 default:
8545 /* SignalConversion: '<S81>/Signal Conversion15' incorporates:
8546 * Constant: '<S81>/CPV1'
8547 */
8548 L4_MABX_B.Vehicle_speed_abs_max_g = L4_MABX_P.CPV1_Value;
8549 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_g;
8550 break;
8551 }
8552
8553 /* RelationalOperator: '<S335>/Compare' incorporates:
8554 * Constant: '<S335>/Constant'
8555 */
8556 L4_MABX_B.Compare_jr = (L4_MABX_B.SFunction1_o7_id ==
8557 L4_MABX_P.Constant_Value_a);
8558
8559 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
8560 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8561 L4_MABX_B.distance_o = L4_MABX_DW.TmpRTBAtSignalConversion2Inport;
8562 }
8563
8564 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8565 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8566 */
8567 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8568 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8569 /* SignalConversion: '<S81>/Signal Conversion2' */
8570 L4_MABX_B.Distance_to_achieve_speed_tar_f = L4_MABX_B.distance_o;
8571 L4_MABX_B.Distance_to_achieve_speed_targe =
8572 L4_MABX_B.Distance_to_achieve_speed_tar_f;
8573 break;
8574
8575 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8576 /* SignalConversion: '<S81>/Signal Conversion7' incorporates:
8577 * Constant: '<S81>/DISTANCE_M'
8578 */
8579 L4_MABX_B.Distance_to_achieve_speed_tar_j = DISTANCE_M;
8580 L4_MABX_B.Distance_to_achieve_speed_targe =
8581 L4_MABX_B.Distance_to_achieve_speed_tar_j;
8582 break;
8583
8584 default:
8585 /* SignalConversion: '<S81>/Signal Conversion14' incorporates:
8586 * Constant: '<S81>/CPV'
8587 */
8588 L4_MABX_B.Distance_to_achieve_speed_tar_m = L4_MABX_P.CPV_Value_ia;
8589 L4_MABX_B.Distance_to_achieve_speed_targe =
8590 L4_MABX_B.Distance_to_achieve_speed_tar_m;
8591 break;
8592 }
8593
8594 /* UnitDelay: '<S336>/Delay Input1' */
8595 L4_MABX_B.Uk1[0] = L4_MABX_DW.DelayInput1_DSTATE[0];
8596 L4_MABX_B.Uk1[1] = L4_MABX_DW.DelayInput1_DSTATE[1];
8597
8598 /* RelationalOperator: '<S336>/FixPt Relational Operator' */
8599 L4_MABX_B.FixPtRelationalOperator_d[0] =
8600 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1[0]);
8601 L4_MABX_B.FixPtRelationalOperator_d[1] = (L4_MABX_B.Vehicle_speed_target_o !=
8602 L4_MABX_B.Uk1[1]);
8603
8604 /* Logic: '<S81>/Logical Operator1' */
8605 L4_MABX_B.LogicalOperator1_ja = (L4_MABX_B.FixPtRelationalOperator_d[0] ||
8606 L4_MABX_B.FixPtRelationalOperator_d[1]);
8607
8608 /* Saturate: '<S338>/Saturation5' */
8609 DeltaTime = L4_MABX_B.SFunction1_o1_h54;
8610 Time56 = L4_MABX_P.Saturation5_LowerSat;
8611 PositionFinalLimited = L4_MABX_P.Saturation5_UpperSat;
8612 if (DeltaTime > PositionFinalLimited) {
8613 L4_MABX_B.Saturation5 = PositionFinalLimited;
8614 } else if (DeltaTime < Time56) {
8615 L4_MABX_B.Saturation5 = Time56;
8616 } else {
8617 L4_MABX_B.Saturation5 = DeltaTime;
8618 }
8619
8620 /* End of Saturate: '<S338>/Saturation5' */
8621
8622 /* MinMax: '<S338>/MinMax6' incorporates:
8623 * Constant: '<S338>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
8624 */
8625 DeltaTime = L4_MABX_B.Saturation5;
8626 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP;
8627 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8628 PositionFinalLimited = DeltaTime;
8629 }
8630
8631 L4_MABX_B.MinMax6 = PositionFinalLimited;
8632
8633 /* End of MinMax: '<S338>/MinMax6' */
8634
8635 /* Gain: '<S338>/Gain1' */
8636 L4_MABX_B.Gain1_e = L4_MABX_P.Gain1_Gain_a * L4_MABX_B.MinMax6;
8637
8638 /* Saturate: '<S338>/Saturation4' */
8639 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
8640 Time56 = L4_MABX_P.Saturation4_LowerSat;
8641 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat;
8642 if (DeltaTime > PositionFinalLimited) {
8643 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = PositionFinalLimited;
8644 } else if (DeltaTime < Time56) {
8645 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = Time56;
8646 } else {
8647 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = DeltaTime;
8648 }
8649
8650 /* End of Saturate: '<S338>/Saturation4' */
8651
8652 /* MinMax: '<S338>/MinMax1' incorporates:
8653 * Constant: '<S338>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
8654 */
8655 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
8656 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_;
8657 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8658 PositionFinalLimited = DeltaTime;
8659 }
8660
8661 L4_MABX_B.MinMax1_f = PositionFinalLimited;
8662
8663 /* End of MinMax: '<S338>/MinMax1' */
8664
8665 /* Gain: '<S338>/Gain2' */
8666 L4_MABX_B.Gain2 = L4_MABX_P.Gain2_Gain_k * L4_MABX_B.MinMax1_f;
8667
8668 /* Saturate: '<S338>/Saturation6' */
8669 DeltaTime = SPN1810_LongitudinalAcceleration;
8670 Time56 = L4_MABX_P.Saturation6_LowerSat;
8671 PositionFinalLimited = L4_MABX_P.Saturation6_UpperSat;
8672 if (DeltaTime > PositionFinalLimited) {
8673 L4_MABX_B.Saturation6 = PositionFinalLimited;
8674 } else if (DeltaTime < Time56) {
8675 L4_MABX_B.Saturation6 = Time56;
8676 } else {
8677 L4_MABX_B.Saturation6 = DeltaTime;
8678 }
8679
8680 /* End of Saturate: '<S338>/Saturation6' */
8681
8682 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8683 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8684 */
8685 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8686 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8687 /* SignalConversion: '<S81>/Signal Conversion10' incorporates:
8688 * Constant: '<S81>/CPV3'
8689 */
8690 L4_MABX_B.Acceleration_target_ms2_d = L4_MABX_P.CPV3_Value_l;
8691 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_d;
8692 break;
8693
8694 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8695 /* SignalConversion: '<S81>/Signal Conversion5' incorporates:
8696 * Constant: '<S81>/VEH_ACCEL_TARGET_APV'
8697 */
8698 L4_MABX_B.Acceleration_target_ms2_h = L4_MABX_P.VEH_ACCEL_TARGET_APV_Value;
8699 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_h;
8700 break;
8701
8702 default:
8703 /* SignalConversion: '<S81>/Signal Conversion11' incorporates:
8704 * Constant: '<S81>/CPV2'
8705 */
8706 L4_MABX_B.Acceleration_target_ms2_f = L4_MABX_P.CPV2_Value;
8707 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_f;
8708 break;
8709 }
8710
8711 /* Saturate: '<S338>/Saturation7' */
8712 DeltaTime = L4_MABX_B.Acceleration_target_ms2;
8713 Time56 = L4_MABX_P.Saturation7_LowerSat;
8714 PositionFinalLimited = L4_MABX_P.Saturation7_UpperSat;
8715 if (DeltaTime > PositionFinalLimited) {
8716 L4_MABX_B.Saturation7 = PositionFinalLimited;
8717 } else if (DeltaTime < Time56) {
8718 L4_MABX_B.Saturation7 = Time56;
8719 } else {
8720 L4_MABX_B.Saturation7 = DeltaTime;
8721 }
8722
8723 /* End of Saturate: '<S338>/Saturation7' */
8724
8725 /* Saturate: '<S338>/Saturation1' incorporates:
8726 * Constant: '<S81>/VEH_JERK_INITIAL_APV'
8727 */
8728 DeltaTime = L4_MABX_P.VEH_JERK_INITIAL_APV_Value;
8729 Time56 = L4_MABX_P.Saturation1_LowerSat_b;
8730 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_o;
8731 if (DeltaTime > PositionFinalLimited) {
8732 L4_MABX_B.Saturation1 = PositionFinalLimited;
8733 } else if (DeltaTime < Time56) {
8734 L4_MABX_B.Saturation1 = Time56;
8735 } else {
8736 L4_MABX_B.Saturation1 = DeltaTime;
8737 }
8738
8739 /* End of Saturate: '<S338>/Saturation1' */
8740
8741 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8742 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8743 */
8744 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8745 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8746 /* SignalConversion: '<S81>/Signal Conversion13' incorporates:
8747 * Constant: '<S81>/CPV4'
8748 */
8749 L4_MABX_B.Jerk_target_ms3_g = L4_MABX_P.CPV4_Value_k;
8750 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_g;
8751 break;
8752
8753 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8754 /* SignalConversion: '<S81>/Signal Conversion6' incorporates:
8755 * Constant: '<S81>/VEH_JERK_TARGET_APV'
8756 */
8757 L4_MABX_B.Jerk_target_ms3_d = L4_MABX_P.VEH_JERK_TARGET_APV_Value;
8758 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_d;
8759 break;
8760
8761 default:
8762 /* SignalConversion: '<S81>/Signal Conversion12' incorporates:
8763 * Constant: '<S81>/CPV5'
8764 */
8765 L4_MABX_B.Jerk_target_ms3_l = L4_MABX_P.CPV5_Value_n;
8766 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_l;
8767 break;
8768 }
8769
8770 /* Saturate: '<S338>/Saturation2' */
8771 DeltaTime = L4_MABX_B.Jerk_target_ms3;
8772 Time56 = L4_MABX_P.Saturation2_LowerSat;
8773 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat;
8774 if (DeltaTime > PositionFinalLimited) {
8775 L4_MABX_B.Saturation2 = PositionFinalLimited;
8776 } else if (DeltaTime < Time56) {
8777 L4_MABX_B.Saturation2 = Time56;
8778 } else {
8779 L4_MABX_B.Saturation2 = DeltaTime;
8780 }
8781
8782 /* End of Saturate: '<S338>/Saturation2' */
8783
8784 /* Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
8785 /* Gateway: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8786 /* During: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8787 /* Entry Internal: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8788 /* Transition: '<S353>:88' */
8789 if (L4_MABX_B.LogicalOperator1_ja) {
8790 /* Transition: '<S353>:89' */
8791 /* Transition: '<S353>:39' */
8792 PositionFinalLimited = L4_MABX_B.Distance_to_achieve_speed_targe;
8793 if ((0.001 > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8794 PositionFinalLimited = 0.001;
8795 }
8796
8797 Time56 = L4_MABX_B.Gain1_e;
8798 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8799 L4_MABX_DW.VelocityInitialLimited = 0.1;
8800 } else {
8801 L4_MABX_DW.VelocityInitialLimited = Time56;
8802 }
8803
8804 Time56 = L4_MABX_B.Gain2;
8805 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8806 L4_MABX_DW.VelocityFinalLimited = 0.1;
8807 } else {
8808 L4_MABX_DW.VelocityFinalLimited = Time56;
8809 }
8810
8811 L4_MABX_DW.TimeFinal = 2.0 * PositionFinalLimited /
8812 (L4_MABX_DW.VelocityInitialLimited + L4_MABX_DW.VelocityFinalLimited);
8813 Time56 = L4_MABX_DW.TimeFinal;
8814 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8815 L4_MABX_DW.TimeFinal = 0.007;
8816 } else {
8817 L4_MABX_DW.TimeFinal = Time56;
8818 }
8819
8820 AccelerationAverage = (L4_MABX_DW.VelocityFinalLimited -
8821 L4_MABX_DW.VelocityInitialLimited) / L4_MABX_DW.TimeFinal;
8822 L4_MABX_DW.TimeFinal *= 2.0;
8823 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8824 /* Transition: '<S353>:238' */
8825 /* Transition: '<S353>:240' */
8826 Time56 = L4_MABX_B.Saturation6;
8827 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8828 Time56 = AccelerationAverage;
8829 }
8830
8831 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8832 L4_MABX_DW.AccelerationInitialLimited = 0.0;
8833 } else {
8834 L4_MABX_DW.AccelerationInitialLimited = Time56;
8835 }
8836
8837 Time56 = L4_MABX_B.Saturation7;
8838 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8839 Time56 = AccelerationAverage;
8840 }
8841
8842 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8843 L4_MABX_DW.AccelerationFinalLimited = 0.0;
8844 } else {
8845 L4_MABX_DW.AccelerationFinalLimited = Time56;
8846 }
8847
8848 /* Transition: '<S353>:243' */
8849 } else {
8850 /* Transition: '<S353>:241' */
8851 Time56 = L4_MABX_B.Saturation6;
8852 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8853 Time56 = 0.0;
8854 }
8855
8856 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8857 L4_MABX_DW.AccelerationInitialLimited = AccelerationAverage;
8858 } else {
8859 L4_MABX_DW.AccelerationInitialLimited = Time56;
8860 }
8861
8862 Time56 = L4_MABX_B.Saturation7;
8863 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8864 Time56 = 0.0;
8865 }
8866
8867 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8868 L4_MABX_DW.AccelerationFinalLimited = AccelerationAverage;
8869 } else {
8870 L4_MABX_DW.AccelerationFinalLimited = Time56;
8871 }
8872 }
8873
8874 /* Transition: '<S353>:16' */
8875 DeltaTimeFinal = L4_MABX_DW.TimeFinal;
8876 for (starting_index = 1U; starting_index < 16; starting_index++) {
8877 /* Transition: '<S353>:14' */
8878 /* Transition: '<S353>:201' */
8879 DeltaTime = ((L4_MABX_DW.VelocityInitialLimited -
8880 L4_MABX_DW.VelocityFinalLimited) +
8881 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) *
8882 2.0 / (L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal);
8883 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8884 /* Transition: '<S353>:121' */
8885 /* Transition: '<S353>:116' */
8886 L4_MABX_DW.Jerk12 = L4_MABX_B.Saturation1;
8887 DeltaTime = fabs(DeltaTime);
8888 Time56 = L4_MABX_B.Saturation2;
8889 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8890 Time56 = DeltaTime;
8891 }
8892
8893 L4_MABX_DW.Jerk56 = -Time56;
8894
8895 /* Transition: '<S353>:120' */
8896 } else {
8897 /* Transition: '<S353>:122' */
8898 L4_MABX_DW.Jerk12 = -L4_MABX_B.Saturation1;
8899 DeltaTime = fabs(DeltaTime);
8900 Time56 = L4_MABX_B.Saturation2;
8901 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8902 L4_MABX_DW.Jerk56 = DeltaTime;
8903 } else {
8904 L4_MABX_DW.Jerk56 = Time56;
8905 }
8906 }
8907
8908 /* Transition: '<S353>:275' */
8909 L4_MABX_CalculateAcceleration34();
8910 if (fabs(L4_MABX_DW.Acceleration34 - AccelerationAverage) < 0.001) {
8911 /* Transition: '<S353>:141' */
8912 /* Transition: '<S353>:145' */
8913 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8914 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8915 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8916 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - 0.002) - 0.001;
8917 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - 0.002) + 0.001;
8918 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8919 for (i = 0; i < 6; i++) {
8920 L4_MABX_B.JerkVectorRaw[i] = 0.0;
8921 }
8922
8923 L4_MABX_B.AccelerationVectorRaw[0] = AccelerationAverage;
8924
8925 /* Transition: '<S353>:191' */
8926 /* Transition: '<S353>:303' */
8927 } else {
8928 /* Transition: '<S353>:298' */
8929 if (L4_MABX_DW.AlternateMethod) {
8930 /* Transition: '<S353>:300' */
8931 /* Transition: '<S353>:302' */
8932 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8933 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8934 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8935 Time56 = 0.002;
8936 }
8937
8938 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8939 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8940 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8941 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8942 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8943 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8944 L4_MABX_B.JerkVectorRaw[0] = 0.0;
8945 L4_MABX_B.JerkVectorRaw[1] = 0.0;
8946 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8947 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8948 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8949 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8950 L4_MABX_B.AccelerationVectorRaw[0] = L4_MABX_DW.Acceleration34;
8951
8952 /* Transition: '<S353>:303' */
8953 } else {
8954 /* Transition: '<S353>:157' */
8955 DeltaTime = (L4_MABX_DW.Acceleration34 -
8956 L4_MABX_DW.AccelerationInitialLimited) /
8957 L4_MABX_DW.Jerk12;
8958 if ((0.002 > DeltaTime) || rtIsNaN(DeltaTime)) {
8959 DeltaTime = 0.002;
8960 }
8961
8962 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8963 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8964 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8965 Time56 = 0.002;
8966 }
8967
8968 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8969 L4_MABX_B.TimeVectorRaw[1] = DeltaTime - 0.001;
8970 L4_MABX_B.TimeVectorRaw[2] = DeltaTime + 0.001;
8971 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8972 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8973 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8974 L4_MABX_B.JerkVectorRaw[0] = L4_MABX_DW.Jerk12;
8975 L4_MABX_B.JerkVectorRaw[1] = L4_MABX_DW.Jerk12;
8976 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8977 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8978 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8979 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8980 L4_MABX_B.AccelerationVectorRaw[0] =
8981 L4_MABX_DW.AccelerationInitialLimited;
8982 }
8983 }
8984
8985 /* Transition: '<S353>:29' */
8986 L4_MABX_B.VelocityVectorRaw[0] = L4_MABX_DW.VelocityInitialLimited;
8987 L4_MABX_B.PositionVectorRaw[0] = 0.0;
8988 for (j = 2U; j < 7; j++) {
8989 /* Transition: '<S353>:34' */
8990 /* Transition: '<S353>:36' */
8991 DeltaTime = L4_MABX_B.TimeVectorRaw[j - 1] - L4_MABX_B.TimeVectorRaw[j -
8992 2];
8993 L4_MABX_B.AccelerationVectorRaw[j - 1] = L4_MABX_B.JerkVectorRaw[j - 2] *
8994 DeltaTime + L4_MABX_B.AccelerationVectorRaw[j - 2];
8995 L4_MABX_B.VelocityVectorRaw[j - 1] = (L4_MABX_B.AccelerationVectorRaw[j
8996 - 2] * DeltaTime + L4_MABX_B.VelocityVectorRaw[j - 2]) +
8997 L4_MABX_B.JerkVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime);
8998 L4_MABX_B.PositionVectorRaw[j - 1] = ((L4_MABX_B.VelocityVectorRaw[j - 2]
8999 * DeltaTime + L4_MABX_B.PositionVectorRaw[j - 2]) +
9000 L4_MABX_B.AccelerationVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime))
9001 + L4_MABX_B.JerkVectorRaw[j - 2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9002
9003 /* Transition: '<S353>:33' */
9004 }
9005
9006 /* Transition: '<S353>:37' */
9007 DeltaTimeFinal *= 0.5;
9008 if ((L4_MABX_B.PositionVectorRaw[5] - PositionFinalLimited < 0.0) &&
9009 (L4_MABX_B.VelocityVectorRaw[5] > 0.0)) {
9010 /* Transition: '<S353>:61' */
9011 /* Transition: '<S353>:62' */
9012 L4_MABX_DW.TimeFinal += DeltaTimeFinal;
9013
9014 /* Transition: '<S353>:64' */
9015 } else {
9016 /* Transition: '<S353>:63' */
9017 L4_MABX_DW.TimeFinal -= DeltaTimeFinal;
9018 }
9019
9020 /* Transition: '<S353>:60' */
9021 Time56 = L4_MABX_DW.TimeFinal;
9022 if ((0.007 > Time56) || rtIsNaN(Time56)) {
9023 L4_MABX_DW.TimeFinal = 0.007;
9024 } else {
9025 L4_MABX_DW.TimeFinal = Time56;
9026 }
9027
9028 /* Transition: '<S353>:17' */
9029 }
9030
9031 /* Transition: '<S353>:18' */
9032 /* Transition: '<S353>:91' */
9033 } else {
9034 /* Transition: '<S353>:90' */
9035 }
9036
9037 /* End of Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
9038
9039 /* Chart: '<S338>/TwentyPointVectorCalculation' */
9040 if (L4_MABX_B.LogicalOperator1_ja) {
9041 /* Transition: '<S352>:89' */
9042 /* Transition: '<S352>:39' */
9043 L4_MABX_B.TimeVector[0] = L4_MABX_B.TimeVectorRaw[0];
9044 L4_MABX_B.JerkVector[0] = L4_MABX_B.JerkVectorRaw[0];
9045 L4_MABX_B.AccelerationVector[0] = L4_MABX_B.AccelerationVectorRaw[0];
9046 L4_MABX_B.VelocityVector[0] = L4_MABX_B.VelocityVectorRaw[0];
9047 L4_MABX_B.PositionVector[0] = L4_MABX_B.PositionVectorRaw[0];
9048 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[1] -
9049 L4_MABX_B.TimeVectorRaw[0]) / 10.0;
9050 for (starting_index = 2U; starting_index < 11; starting_index++) {
9051 /* Transition: '<S352>:14' */
9052 /* Transition: '<S352>:101' */
9053 L4_MABX_B.TimeVector[starting_index - 1] =
9054 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9055 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9056 L4_MABX_B.TimeVectorRaw[0];
9057 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[0];
9058 L4_MABX_B.AccelerationVector[starting_index - 1] =
9059 L4_MABX_B.JerkVectorRaw[0] * DeltaTime +
9060 L4_MABX_B.AccelerationVectorRaw[0];
9061 L4_MABX_B.VelocityVector[starting_index - 1] =
9062 (L4_MABX_B.AccelerationVectorRaw[0] * DeltaTime +
9063 L4_MABX_B.VelocityVectorRaw[0]) + 0.5 * L4_MABX_B.JerkVectorRaw[0] *
9064 (DeltaTime * DeltaTime);
9065 L4_MABX_B.PositionVector[starting_index - 1] =
9066 ((L4_MABX_B.VelocityVectorRaw[0] * DeltaTime +
9067 L4_MABX_B.PositionVectorRaw[0]) + 0.5 *
9068 L4_MABX_B.AccelerationVectorRaw[0] * (DeltaTime * DeltaTime)) +
9069 L4_MABX_B.JerkVectorRaw[0] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9070 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9071 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9072 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9073 Time56 = DeltaTime;
9074 }
9075
9076 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9077
9078 /* Transition: '<S352>:17' */
9079 }
9080
9081 /* Transition: '<S352>:110' */
9082 L4_MABX_B.TimeVector[10] = L4_MABX_B.TimeVectorRaw[1];
9083 L4_MABX_B.JerkVector[10] = L4_MABX_B.JerkVectorRaw[1];
9084 L4_MABX_B.AccelerationVector[10] = L4_MABX_B.AccelerationVectorRaw[1];
9085 L4_MABX_B.VelocityVector[10] = L4_MABX_B.VelocityVectorRaw[1];
9086 DeltaTime = L4_MABX_B.PositionVector[9] + 0.0001;
9087 Time56 = L4_MABX_B.PositionVectorRaw[1];
9088 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9089 Time56 = DeltaTime;
9090 }
9091
9092 L4_MABX_B.PositionVector[10] = Time56;
9093 L4_MABX_B.TimeVector[11] = L4_MABX_B.TimeVectorRaw[2];
9094 L4_MABX_B.JerkVector[11] = L4_MABX_B.JerkVectorRaw[2];
9095 L4_MABX_B.AccelerationVector[11] = L4_MABX_B.AccelerationVectorRaw[2];
9096 L4_MABX_B.VelocityVector[11] = L4_MABX_B.VelocityVectorRaw[2];
9097 DeltaTime = L4_MABX_B.PositionVector[10] + 0.0001;
9098 Time56 = L4_MABX_B.PositionVectorRaw[2];
9099 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9100 Time56 = DeltaTime;
9101 }
9102
9103 L4_MABX_B.PositionVector[11] = Time56;
9104 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[3] -
9105 L4_MABX_B.TimeVectorRaw[2]) / 10.0;
9106 for (starting_index = 13U; starting_index < 22; starting_index++) {
9107 /* Transition: '<S352>:127' */
9108 /* Transition: '<S352>:133' */
9109 L4_MABX_B.TimeVector[starting_index - 1] =
9110 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9111 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9112 L4_MABX_B.TimeVectorRaw[2];
9113 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[2];
9114 L4_MABX_B.AccelerationVector[starting_index - 1] =
9115 L4_MABX_B.JerkVectorRaw[2] * DeltaTime +
9116 L4_MABX_B.AccelerationVectorRaw[2];
9117 L4_MABX_B.VelocityVector[starting_index - 1] =
9118 (L4_MABX_B.AccelerationVectorRaw[2] * DeltaTime +
9119 L4_MABX_B.VelocityVectorRaw[2]) + 0.5 * L4_MABX_B.JerkVectorRaw[2] *
9120 (DeltaTime * DeltaTime);
9121 L4_MABX_B.PositionVector[starting_index - 1] =
9122 ((L4_MABX_B.VelocityVectorRaw[2] * DeltaTime +
9123 L4_MABX_B.PositionVectorRaw[2]) + 0.5 *
9124 L4_MABX_B.AccelerationVectorRaw[2] * (DeltaTime * DeltaTime)) +
9125 L4_MABX_B.JerkVectorRaw[2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9126 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9127 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9128 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9129 Time56 = DeltaTime;
9130 }
9131
9132 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9133
9134 /* Transition: '<S352>:131' */
9135 }
9136
9137 /* Transition: '<S352>:132' */
9138 L4_MABX_B.TimeVector[21] = L4_MABX_B.TimeVectorRaw[3];
9139 L4_MABX_B.JerkVector[21] = L4_MABX_B.JerkVectorRaw[3];
9140 L4_MABX_B.AccelerationVector[21] = L4_MABX_B.AccelerationVectorRaw[3];
9141 L4_MABX_B.VelocityVector[21] = L4_MABX_B.VelocityVectorRaw[3];
9142 DeltaTime = L4_MABX_B.PositionVector[20] + 0.0001;
9143 Time56 = L4_MABX_B.PositionVectorRaw[3];
9144 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9145 Time56 = DeltaTime;
9146 }
9147
9148 L4_MABX_B.PositionVector[21] = Time56;
9149 L4_MABX_B.TimeVector[22] = L4_MABX_B.TimeVectorRaw[4];
9150 L4_MABX_B.JerkVector[22] = L4_MABX_B.JerkVectorRaw[4];
9151 L4_MABX_B.AccelerationVector[22] = L4_MABX_B.AccelerationVectorRaw[4];
9152 L4_MABX_B.VelocityVector[22] = L4_MABX_B.VelocityVectorRaw[4];
9153 DeltaTime = L4_MABX_B.PositionVector[21] + 0.0001;
9154 Time56 = L4_MABX_B.PositionVectorRaw[4];
9155 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9156 Time56 = DeltaTime;
9157 }
9158
9159 L4_MABX_B.PositionVector[22] = Time56;
9160 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[5] -
9161 L4_MABX_B.TimeVectorRaw[4]) / 10.0;
9162 for (starting_index = 24U; starting_index < 33; starting_index++) {
9163 /* Transition: '<S352>:111' */
9164 /* Transition: '<S352>:113' */
9165 L4_MABX_B.TimeVector[starting_index - 1] =
9166 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9167 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9168 L4_MABX_B.TimeVectorRaw[4];
9169 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[4];
9170 L4_MABX_B.AccelerationVector[starting_index - 1] =
9171 L4_MABX_B.JerkVectorRaw[4] * DeltaTime +
9172 L4_MABX_B.AccelerationVectorRaw[4];
9173 L4_MABX_B.VelocityVector[starting_index - 1] =
9174 (L4_MABX_B.AccelerationVectorRaw[4] * DeltaTime +
9175 L4_MABX_B.VelocityVectorRaw[4]) + 0.5 * L4_MABX_B.JerkVectorRaw[4] *
9176 (DeltaTime * DeltaTime);
9177 L4_MABX_B.PositionVector[starting_index - 1] =
9178 ((L4_MABX_B.VelocityVectorRaw[4] * DeltaTime +
9179 L4_MABX_B.PositionVectorRaw[4]) + 0.5 *
9180 L4_MABX_B.AccelerationVectorRaw[4] * (DeltaTime * DeltaTime)) +
9181 L4_MABX_B.JerkVectorRaw[4] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9182 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9183 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9184 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9185 Time56 = DeltaTime;
9186 }
9187
9188 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9189
9190 /* Transition: '<S352>:112' */
9191 }
9192
9193 /* Transition: '<S352>:114' */
9194 L4_MABX_B.TimeVector[32] = L4_MABX_B.TimeVectorRaw[5];
9195 L4_MABX_B.JerkVector[32] = L4_MABX_B.JerkVectorRaw[5];
9196 L4_MABX_B.AccelerationVector[32] = L4_MABX_B.AccelerationVectorRaw[5];
9197 L4_MABX_B.VelocityVector[32] = L4_MABX_B.VelocityVectorRaw[5];
9198 DeltaTime = L4_MABX_B.PositionVector[31] + 0.0001;
9199 Time56 = L4_MABX_B.PositionVectorRaw[5];
9200 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9201 Time56 = DeltaTime;
9202 }
9203
9204 L4_MABX_B.PositionVector[32] = Time56;
9205
9206 /* Transition: '<S352>:141' */
9207 } else {
9208 /* Transition: '<S352>:90' */
9209 }
9210
9211 /* End of Chart: '<S338>/TwentyPointVectorCalculation' */
9212
9213 /* Gain: '<S338>/Gain3' */
9214 /* Transition: '<S353>:93' */
9215 /* Gateway: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9216 /* During: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9217 /* Entry Internal: L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9218 /* Transition: '<S352>:88' */
9219 /* Transition: '<S352>:93' */
9220 for (i = 0; i < 33; i++) {
9221 L4_MABX_B.Vehicle_speed_vector_kph[i] = L4_MABX_P.Gain3_Gain_l *
9222 L4_MABX_B.VelocityVector[i];
9223 }
9224
9225 /* End of Gain: '<S338>/Gain3' */
9226
9227 /* RelationalOperator: '<S355>/Compare' incorporates:
9228 * Constant: '<S355>/Constant'
9229 */
9230 for (i = 0; i < 33; i++) {
9231 L4_MABX_B.Compare_nk[i] = (L4_MABX_B.Vehicle_speed_vector_kph[i] <
9232 L4_MABX_P.Constant_Value_n);
9233 }
9234
9235 /* End of RelationalOperator: '<S355>/Compare' */
9236
9237 /* Logic: '<S350>/Logical Operator' */
9238 zcEvent = L4_MABX_B.Compare_nk[0];
9239 for (i = 0; i < 32; i++) {
9240 zcEvent = (zcEvent || L4_MABX_B.Compare_nk[i + 1]);
9241 }
9242
9243 L4_MABX_B.f_vspd_output_less_than_zero = zcEvent;
9244
9245 /* End of Logic: '<S350>/Logical Operator' */
9246
9247 /* MinMax: '<S350>/MinMax3' */
9248 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9249 for (i = 0; i < 32; i++) {
9250 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9251 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9252 PositionFinalLimited = Time56;
9253 }
9254 }
9255
9256 L4_MABX_B.MinMax3 = PositionFinalLimited;
9257
9258 /* End of MinMax: '<S350>/MinMax3' */
9259
9260 /* UnitDelay: '<S354>/Unit_Delay' */
9261 L4_MABX_B.Unit_Delay_f = L4_MABX_DW.Unit_Delay_DSTATE_bw;
9262
9263 /* Outputs for Atomic SubSystem: '<S354>/If_Then_Else' */
9264 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator1_ja, L4_MABX_B.Saturation5,
9265 L4_MABX_B.Unit_Delay_f, &L4_MABX_B.If_Then_Else_og);
9266
9267 /* End of Outputs for SubSystem: '<S354>/If_Then_Else' */
9268
9269 /* MinMax: '<S350>/MinMax5' */
9270 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9271 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9272 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9273 PositionFinalLimited = DeltaTime;
9274 }
9275
9276 L4_MABX_B.MinMax5 = PositionFinalLimited;
9277
9278 /* End of MinMax: '<S350>/MinMax5' */
9279
9280 /* Sum: '<S350>/Subtract' */
9281 L4_MABX_B.Subtract_a = L4_MABX_B.MinMax3 - L4_MABX_B.MinMax5;
9282
9283 /* Abs: '<S350>/Abs' */
9284 L4_MABX_B.Abs_m = fabs(L4_MABX_B.Subtract_a);
9285
9286 /* RelationalOperator: '<S350>/Relational Operator' incorporates:
9287 * Constant: '<S350>/MIN_VSPD_DELTA_THRESHOLD_KPH_APV'
9288 */
9289 L4_MABX_B.RelationalOperator_fg = (L4_MABX_B.Abs_m >
9290 L4_MABX_P.MIN_VSPD_DELTA_THRESHOLD_KPH_AP);
9291
9292 /* Logic: '<S356>/Logical Operator3' incorporates:
9293 * Constant: '<S350>/CPV'
9294 */
9295 L4_MABX_B.LogicalOperator3_o = !L4_MABX_P.CPV_Value_a;
9296
9297 /* UnitDelay: '<S356>/Unit_Delay' */
9298 L4_MABX_B.Unit_Delay_ag = L4_MABX_DW.Unit_Delay_DSTATE_k;
9299
9300 /* Logic: '<S356>/Logical Operator' */
9301 L4_MABX_B.LogicalOperator_o = (L4_MABX_B.LogicalOperator3_o &&
9302 L4_MABX_B.Unit_Delay_ag);
9303
9304 /* Logic: '<S356>/Logical Operator1' */
9305 L4_MABX_B.LogicalOperator1_ph = (L4_MABX_B.LogicalOperator1_ja ||
9306 L4_MABX_B.LogicalOperator_o);
9307
9308 /* Logic: '<S350>/Logical Operator2' */
9309 L4_MABX_B.f_vspd_min_delta_greater_than_t = (L4_MABX_B.RelationalOperator_fg &&
9310 L4_MABX_B.LogicalOperator1_ph);
9311
9312 /* MinMax: '<S350>/MinMax4' */
9313 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9314 for (i = 0; i < 32; i++) {
9315 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9316 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9317 PositionFinalLimited = Time56;
9318 }
9319 }
9320
9321 L4_MABX_B.MinMax4 = PositionFinalLimited;
9322
9323 /* End of MinMax: '<S350>/MinMax4' */
9324
9325 /* MinMax: '<S350>/MinMax6' */
9326 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9327 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9328 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9329 PositionFinalLimited = DeltaTime;
9330 }
9331
9332 L4_MABX_B.MinMax6_j = PositionFinalLimited;
9333
9334 /* End of MinMax: '<S350>/MinMax6' */
9335
9336 /* Sum: '<S350>/Subtract1' */
9337 L4_MABX_B.Subtract1_c = L4_MABX_B.MinMax4 - L4_MABX_B.MinMax6_j;
9338
9339 /* Abs: '<S350>/Abs1' */
9340 L4_MABX_B.Abs1_h5 = fabs(L4_MABX_B.Subtract1_c);
9341
9342 /* RelationalOperator: '<S350>/Relational Operator1' incorporates:
9343 * Constant: '<S350>/MAX_VSPD_DELTA_THRESHOLD_KPH_APV'
9344 */
9345 L4_MABX_B.RelationalOperator1_g = (L4_MABX_B.Abs1_h5 >
9346 L4_MABX_P.MAX_VSPD_DELTA_THRESHOLD_KPH_AP);
9347
9348 /* Logic: '<S350>/Logical Operator1' */
9349 L4_MABX_B.f_vspd_max_delta_greater_than_t = (L4_MABX_B.RelationalOperator1_g &&
9350 L4_MABX_B.LogicalOperator1_ph);
9351
9352 /* MinMax: '<S350>/MinMax8' */
9353 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9354 for (i = 0; i < 32; i++) {
9355 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9356 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9357 PositionFinalLimited = Time56;
9358 }
9359 }
9360
9361 L4_MABX_B.MinMax8 = PositionFinalLimited;
9362
9363 /* End of MinMax: '<S350>/MinMax8' */
9364
9365 /* RelationalOperator: '<S350>/Relational Operator2' incorporates:
9366 * Constant: '<S350>/ACCEL_RATE_ABS_MAX_THRESHOLD_MS2_APV'
9367 */
9368 L4_MABX_B.f_accel_rate_greater_than_thres = (L4_MABX_B.MinMax8 >
9369 L4_MABX_P.ACCEL_RATE_ABS_MAX_THRESHOLD_MS);
9370
9371 /* MinMax: '<S350>/MinMax7' */
9372 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9373 for (i = 0; i < 32; i++) {
9374 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9375 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9376 PositionFinalLimited = Time56;
9377 }
9378 }
9379
9380 L4_MABX_B.MinMax7 = PositionFinalLimited;
9381
9382 /* End of MinMax: '<S350>/MinMax7' */
9383
9384 /* RelationalOperator: '<S350>/Relational Operator3' incorporates:
9385 * Constant: '<S350>/ACCEL_RATE_ABS_MIN_THRESHOLD_MS2_APV'
9386 */
9387 L4_MABX_B.f_decel_rate_greater_than_thres = (L4_MABX_B.MinMax7 <
9388 L4_MABX_P.ACCEL_RATE_ABS_MIN_THRESHOLD_MS);
9389
9390 /* MinMax: '<S350>/MinMax10' */
9391 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9392 for (i = 0; i < 32; i++) {
9393 Time56 = L4_MABX_B.JerkVector[i + 1];
9394 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9395 PositionFinalLimited = Time56;
9396 }
9397 }
9398
9399 L4_MABX_B.MinMax10 = PositionFinalLimited;
9400
9401 /* End of MinMax: '<S350>/MinMax10' */
9402
9403 /* RelationalOperator: '<S350>/Relational Operator4' incorporates:
9404 * Constant: '<S350>/JERK_RATE_ABS_MAX_THRESHOLD_MS3_APV'
9405 */
9406 L4_MABX_B.f_jerk_rate_greater_than_thresh = (L4_MABX_B.MinMax10 >
9407 L4_MABX_P.JERK_RATE_ABS_MAX_THRESHOLD_MS3);
9408
9409 /* MinMax: '<S350>/MinMax9' */
9410 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9411 for (i = 0; i < 32; i++) {
9412 Time56 = L4_MABX_B.JerkVector[i + 1];
9413 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9414 PositionFinalLimited = Time56;
9415 }
9416 }
9417
9418 L4_MABX_B.MinMax9 = PositionFinalLimited;
9419
9420 /* End of MinMax: '<S350>/MinMax9' */
9421
9422 /* RelationalOperator: '<S350>/Relational Operator5' incorporates:
9423 * Constant: '<S350>/JERK_RATE_ABS_MIN_THRESHOLD_MS3_APV'
9424 */
9425 L4_MABX_B.f_jerk_rate_greater_than_thre_n = (L4_MABX_B.MinMax9 <
9426 L4_MABX_P.JERK_RATE_ABS_MIN_THRESHOLD_MS3);
9427
9428 /* Sum: '<S350>/Subtract2' */
9429 L4_MABX_B.Subtract2 = L4_MABX_B.Distance_to_achieve_speed_targe -
9430 L4_MABX_B.PositionVector[32];
9431
9432 /* Abs: '<S350>/Abs2' */
9433 L4_MABX_B.Abs2 = fabs(L4_MABX_B.Subtract2);
9434
9435 /* RelationalOperator: '<S350>/Relational Operator6' incorporates:
9436 * Constant: '<S350>/MAX_DISTANCE_DELTA_THRESHOLD_M_APV'
9437 */
9438 L4_MABX_B.RelationalOperator6_i = (L4_MABX_B.Abs2 >
9439 L4_MABX_P.MAX_DISTANCE_DELTA_THRESHOLD_M_);
9440
9441 /* Logic: '<S350>/Logical Operator3' */
9442 L4_MABX_B.f_distance_max_delta_greater_th = (L4_MABX_B.RelationalOperator6_i &&
9443 L4_MABX_B.LogicalOperator1_ph);
9444
9445 /* Logic: '<S350>/Logical Operator4' */
9446 L4_MABX_B.F_Inhibit_sigmoid_vector_shapin =
9447 (L4_MABX_B.f_vspd_output_less_than_zero ||
9448 L4_MABX_B.f_vspd_min_delta_greater_than_t ||
9449 L4_MABX_B.f_vspd_max_delta_greater_than_t ||
9450 L4_MABX_B.f_accel_rate_greater_than_thres ||
9451 L4_MABX_B.f_decel_rate_greater_than_thres ||
9452 L4_MABX_B.f_jerk_rate_greater_than_thresh ||
9453 L4_MABX_B.f_jerk_rate_greater_than_thre_n ||
9454 L4_MABX_B.f_distance_max_delta_greater_th);
9455
9456 /* Logic: '<S81>/Logical Operator' */
9457 L4_MABX_B.LogicalOperator_n = !L4_MABX_B.F_Inhibit_sigmoid_vector_shapin;
9458
9459 /* Logic: '<S81>/Logical Operator2' */
9460 L4_MABX_B.LogicalOperator2_ft = (L4_MABX_B.Compare_jr &&
9461 L4_MABX_B.LogicalOperator_n);
9462
9463 /* RelationalOperator: '<S351>/Relational Operator3' incorporates:
9464 * Constant: '<S351>/CPV1'
9465 */
9466 L4_MABX_B.RelationalOperator3_k = (L4_MABX_B.Saturation5 <
9467 L4_MABX_P.CPV1_Value_i);
9468
9469 /* RelationalOperator: '<S351>/Relational Operator1' incorporates:
9470 * Constant: '<S338>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
9471 */
9472 L4_MABX_B.RelationalOperator1_hj = (L4_MABX_B.If_Then_Else_og.Switch <
9473 L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP);
9474
9475 /* Logic: '<S351>/Logical Operator' */
9476 L4_MABX_B.LogicalOperator_da = (L4_MABX_B.RelationalOperator3_k ||
9477 L4_MABX_B.RelationalOperator1_hj);
9478
9479 /* RelationalOperator: '<S351>/Relational Operator2' incorporates:
9480 * Constant: '<S338>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
9481 */
9482 L4_MABX_B.RelationalOperator2_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_gu <
9483 L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_);
9484
9485 /* Logic: '<S351>/Logical Operator2' */
9486 L4_MABX_B.F_set_max_distance_accumulated = (L4_MABX_B.LogicalOperator_da &&
9487 L4_MABX_B.RelationalOperator2_g);
9488
9489 /* UnitDelay: '<S365>/FixPt Unit Delay2' */
9490 L4_MABX_B.FixPtUnitDelay2_o = L4_MABX_DW.FixPtUnitDelay2_DSTATE_f;
9491
9492 /* Logic: '<S365>/FixPt Logical Operator' */
9493 L4_MABX_B.FixPtLogicalOperator = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
9494 (L4_MABX_B.FixPtUnitDelay2_o != 0));
9495
9496 /* UnitDelay: '<S365>/FixPt Unit Delay1' */
9497 L4_MABX_B.Xold_pg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_li;
9498
9499 /* Switch: '<S365>/Init' incorporates:
9500 * Constant: '<S360>/CPV'
9501 */
9502 if (L4_MABX_B.FixPtLogicalOperator != 0) {
9503 L4_MABX_B.Init_h = L4_MABX_P.CPV_Value_h;
9504 } else {
9505 L4_MABX_B.Init_h = L4_MABX_B.Xold_pg;
9506 }
9507
9508 /* End of Switch: '<S365>/Init' */
9509
9510 /* Gain: '<S351>/Gain1' */
9511 L4_MABX_B.Gain1_c = L4_MABX_P.Gain1_Gain_k * L4_MABX_B.Saturation5;
9512
9513 /* DigitalClock: '<S363>/Digital Clock' */
9514 L4_MABX_B.DigitalClock_f = L4_MABX_M->Timing.t[0];
9515
9516 /* UnitDelay: '<S363>/Unit_Delay' */
9517 L4_MABX_B.Unit_Delay_e = L4_MABX_DW.Unit_Delay_DSTATE_ps;
9518
9519 /* Sum: '<S363>/Subtract' */
9520 L4_MABX_B.Subtract_b0 = L4_MABX_B.DigitalClock_f - L4_MABX_B.Unit_Delay_e;
9521
9522 /* Product: '<S360>/Product1' incorporates:
9523 * Constant: '<S359>/CPV1'
9524 */
9525 L4_MABX_B.Product1_a = L4_MABX_P.CPV1_Value_e * L4_MABX_B.Gain1_c *
9526 L4_MABX_B.Subtract_b0;
9527
9528 /* Sum: '<S360>/Add' */
9529 L4_MABX_B.Add_h = L4_MABX_B.Init_h + L4_MABX_B.Product1_a;
9530
9531 /* MinMax: '<S360>/MinMax' */
9532 DeltaTime = L4_MABX_B.Distance_to_achieve_speed_targe;
9533 PositionFinalLimited = L4_MABX_B.Add_h;
9534 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9535 PositionFinalLimited = DeltaTime;
9536 }
9537
9538 L4_MABX_B.MinMax_a = PositionFinalLimited;
9539
9540 /* End of MinMax: '<S360>/MinMax' */
9541
9542 /* Outputs for Atomic SubSystem: '<S360>/If_Then_Else' */
9543 L4_MABX_If_Then_Else_g(L4_MABX_B.F_set_max_distance_accumulated,
9544 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.MinMax_a,
9545 &L4_MABX_B.If_Then_Else_gf);
9546
9547 /* End of Outputs for SubSystem: '<S360>/If_Then_Else' */
9548
9549 /* RelationalOperator: '<S351>/Relational Operator' */
9550 L4_MABX_B.RelationalOperator_l = (L4_MABX_B.If_Then_Else_gf.Switch ==
9551 L4_MABX_B.Distance_to_achieve_speed_targe);
9552
9553 /* S-Function (sfix_look1_dyn): '<S351>/Lookup Table Dynamic' */
9554 /* Dynamic Look-Up Table Block: '<S351>/Lookup Table Dynamic'
9555 * Input0 Data Type: Floating Point real_T
9556 * Input1 Data Type: Floating Point real_T
9557 * Input2 Data Type: Floating Point real_T
9558 * Output0 Data Type: Floating Point real_T
9559 * Lookup Method: Linear_Endpoint
9560 *
9561 */
9562 LookUp_real_T_real_T( &(L4_MABX_B.LookupTableDynamic),
9563 &L4_MABX_B.Vehicle_speed_vector_kph[0],
9564 L4_MABX_B.If_Then_Else_gf.Switch,
9565 &L4_MABX_B.PositionVector[0], 32U);
9566
9567 /* Outputs for Atomic SubSystem: '<S351>/If_Then_Else' */
9568 L4_MABX_If_Then_Else_g(L4_MABX_B.RelationalOperator_l,
9569 L4_MABX_B.VSPD_TARGET_KPH_APV_gu, L4_MABX_B.LookupTableDynamic,
9570 &L4_MABX_B.If_Then_Else_jh);
9571
9572 /* End of Outputs for SubSystem: '<S351>/If_Then_Else' */
9573
9574 /* UnitDelay: '<S343>/Delay Input1' */
9575 L4_MABX_B.Uk1_k[0] = L4_MABX_DW.DelayInput1_DSTATE_f[0];
9576 L4_MABX_B.Uk1_k[1] = L4_MABX_DW.DelayInput1_DSTATE_f[1];
9577
9578 /* RelationalOperator: '<S343>/FixPt Relational Operator' */
9579 L4_MABX_B.FixPtRelationalOperator_p[0] =
9580 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1_k[0]);
9581 L4_MABX_B.FixPtRelationalOperator_p[1] = (L4_MABX_B.Vehicle_speed_target_o !=
9582 L4_MABX_B.Uk1_k[1]);
9583
9584 /* Logic: '<S337>/Logical Operator' */
9585 L4_MABX_B.LogicalOperator_g = (L4_MABX_B.FixPtRelationalOperator_p[0] ||
9586 L4_MABX_B.FixPtRelationalOperator_p[1]);
9587
9588 /* UnitDelay: '<S345>/Unit_Delay' */
9589 L4_MABX_B.Unit_Delay_l = L4_MABX_DW.Unit_Delay_DSTATE_la;
9590
9591 /* Logic: '<S345>/Logical Operator1' */
9592 L4_MABX_B.LogicalOperator1_lp = (L4_MABX_B.LogicalOperator_g ||
9593 L4_MABX_B.Unit_Delay_l);
9594
9595 /* UnitDelay: '<S349>/FixPt Unit Delay2' */
9596 L4_MABX_B.FixPtUnitDelay2_n = L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn;
9597
9598 /* UnitDelay: '<S349>/FixPt Unit Delay1' */
9599 L4_MABX_B.Xold_o = L4_MABX_DW.FixPtUnitDelay1_DSTATE_e;
9600
9601 /* Switch: '<S349>/Init' */
9602 if (L4_MABX_B.FixPtUnitDelay2_n != 0) {
9603 L4_MABX_B.Init_p = L4_MABX_B.Vehicle_speed_target_o;
9604 } else {
9605 L4_MABX_B.Init_p = L4_MABX_B.Xold_o;
9606 }
9607
9608 /* End of Switch: '<S349>/Init' */
9609
9610 /* UnitDelay: '<S344>/Unit_Delay' */
9611 L4_MABX_B.Vehicle_speed_target_c = L4_MABX_DW.Unit_Delay_1_DSTATE_j;
9612 L4_MABX_B.Vehicle_speed = L4_MABX_DW.Unit_Delay_2_DSTATE_e;
9613 L4_MABX_B.Distance_m = L4_MABX_DW.Unit_Delay_3_DSTATE_j;
9614
9615 /* Outputs for Atomic SubSystem: '<S344>/If_Then_Else' */
9616 L4_MABX_If_Then_Else_m(L4_MABX_B.LogicalOperator_g,
9617 L4_MABX_B.Vehicle_speed_target_o, L4_MABX_B.SFunction1_o1_h54,
9618 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.Vehicle_speed_target_c,
9619 L4_MABX_B.Vehicle_speed, L4_MABX_B.Distance_m, &L4_MABX_B.If_Then_Else_mm);
9620
9621 /* End of Outputs for SubSystem: '<S344>/If_Then_Else' */
9622
9623 /* Sum: '<S344>/Subtract' */
9624 L4_MABX_B.err = L4_MABX_B.If_Then_Else_mm.Vehicle_speed -
9625 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
9626
9627 /* Abs: '<S344>/Abs2' */
9628 L4_MABX_B.err_abs = fabs(L4_MABX_B.err);
9629
9630 /* Gain: '<S344>/Gain2' */
9631 L4_MABX_B.Gain2_k = L4_MABX_P.Gain2_Gain_l *
9632 L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
9633
9634 /* Saturate: '<S344>/Saturation4' */
9635 DeltaTime = L4_MABX_B.Gain2_k;
9636 Time56 = L4_MABX_P.Saturation4_LowerSat_e;
9637 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_a;
9638 if (DeltaTime > PositionFinalLimited) {
9639 L4_MABX_B.Saturation4 = PositionFinalLimited;
9640 } else if (DeltaTime < Time56) {
9641 L4_MABX_B.Saturation4 = Time56;
9642 } else {
9643 L4_MABX_B.Saturation4 = DeltaTime;
9644 }
9645
9646 /* End of Saturate: '<S344>/Saturation4' */
9647
9648 /* Product: '<S344>/Divide2' */
9649 L4_MABX_B.time_to_target_vspd_secs = L4_MABX_B.If_Then_Else_mm.Distance_m /
9650 L4_MABX_B.Saturation4;
9651
9652 /* DigitalClock: '<S342>/Digital Clock' */
9653 L4_MABX_B.DigitalClock_p = L4_MABX_M->Timing.t[0];
9654
9655 /* UnitDelay: '<S342>/Unit_Delay' */
9656 L4_MABX_B.Unit_Delay_b = L4_MABX_DW.Unit_Delay_DSTATE_ff;
9657
9658 /* Sum: '<S342>/Subtract' */
9659 L4_MABX_B.Subtract_g = L4_MABX_B.DigitalClock_p - L4_MABX_B.Unit_Delay_b;
9660
9661 /* MinMax: '<S344>/MinMax3' */
9662 DeltaTime = L4_MABX_B.time_to_target_vspd_secs;
9663 PositionFinalLimited = L4_MABX_B.Subtract_g;
9664 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9665 PositionFinalLimited = DeltaTime;
9666 }
9667
9668 L4_MABX_B.MinMax3_n = PositionFinalLimited;
9669
9670 /* End of MinMax: '<S344>/MinMax3' */
9671
9672 /* Saturate: '<S344>/Saturation1' */
9673 DeltaTime = L4_MABX_B.MinMax3_n;
9674 Time56 = L4_MABX_P.Saturation1_LowerSat_o;
9675 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_j;
9676 if (DeltaTime > PositionFinalLimited) {
9677 L4_MABX_B.Saturation1_e = PositionFinalLimited;
9678 } else if (DeltaTime < Time56) {
9679 L4_MABX_B.Saturation1_e = Time56;
9680 } else {
9681 L4_MABX_B.Saturation1_e = DeltaTime;
9682 }
9683
9684 /* End of Saturate: '<S344>/Saturation1' */
9685
9686 /* Product: '<S344>/Divide' */
9687 L4_MABX_B.Divide_e = L4_MABX_B.err_abs / L4_MABX_B.Saturation1_e;
9688
9689 /* Abs: '<S345>/Abs' */
9690 L4_MABX_B.Abs_ma = fabs(L4_MABX_B.Divide_e);
9691
9692 /* Product: '<S345>/Product1' */
9693 L4_MABX_B.Product1_iv = L4_MABX_B.Abs_ma * L4_MABX_B.Subtract_g;
9694
9695 /* Sum: '<S345>/Add1' */
9696 L4_MABX_B.Add1_bf = L4_MABX_B.Init_p + L4_MABX_B.Product1_iv;
9697
9698 /* MinMax: '<S345>/MinMax2' */
9699 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
9700 PositionFinalLimited = L4_MABX_B.Add1_bf;
9701 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9702 PositionFinalLimited = DeltaTime;
9703 }
9704
9705 L4_MABX_B.MinMax2_c = PositionFinalLimited;
9706
9707 /* End of MinMax: '<S345>/MinMax2' */
9708
9709 /* Abs: '<S345>/Abs1' */
9710 L4_MABX_B.Abs1_f = fabs(L4_MABX_B.Divide_e);
9711
9712 /* Product: '<S345>/Product2' */
9713 L4_MABX_B.Product2_m = L4_MABX_B.Subtract_g * L4_MABX_B.Abs1_f;
9714
9715 /* Sum: '<S345>/Subtract1' */
9716 L4_MABX_B.Subtract1_h2 = L4_MABX_B.Init_p - L4_MABX_B.Product2_m;
9717
9718 /* MinMax: '<S345>/MinMax1' */
9719 DeltaTime = L4_MABX_B.MinMax2_c;
9720 PositionFinalLimited = L4_MABX_B.Subtract1_h2;
9721 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9722 PositionFinalLimited = DeltaTime;
9723 }
9724
9725 L4_MABX_B.MinMax1_p = PositionFinalLimited;
9726
9727 /* End of MinMax: '<S345>/MinMax1' */
9728
9729 /* Outputs for Atomic SubSystem: '<S345>/If_Then_Else' */
9730 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_lp,
9731 L4_MABX_B.SFunction1_o1_h54, L4_MABX_B.MinMax1_p,
9732 &L4_MABX_B.If_Then_Else_pz);
9733
9734 /* End of Outputs for SubSystem: '<S345>/If_Then_Else' */
9735
9736 /* Outputs for Atomic SubSystem: '<S81>/If_Then_Else' */
9737 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator2_ft,
9738 L4_MABX_B.If_Then_Else_jh.Switch, L4_MABX_B.If_Then_Else_pz.Switch,
9739 &L4_MABX_B.If_Then_Else_ji);
9740
9741 /* End of Outputs for SubSystem: '<S81>/If_Then_Else' */
9742
9743 /* MinMax: '<S81>/MinMax' */
9744 DeltaTime = L4_MABX_B.If_Then_Else_m4.Switch;
9745 PositionFinalLimited = L4_MABX_B.If_Then_Else_bf.Switch;
9746 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9747 PositionFinalLimited = DeltaTime;
9748 }
9749
9750 Time56 = L4_MABX_B.Vehicle_speed_abs_max;
9751 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9752 PositionFinalLimited = Time56;
9753 }
9754
9755 Time56 = L4_MABX_B.If_Then_Else_ji.Switch;
9756 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9757 PositionFinalLimited = Time56;
9758 }
9759
9760 L4_MABX_B.MinMax_ob = PositionFinalLimited;
9761
9762 /* End of MinMax: '<S81>/MinMax' */
9763
9764 /* Saturate: '<S81>/Saturation8' */
9765 DeltaTime = L4_MABX_B.MinMax_ob;
9766 Time56 = L4_MABX_P.Saturation8_LowerSat;
9767 PositionFinalLimited = L4_MABX_P.Saturation8_UpperSat;
9768 if (DeltaTime > PositionFinalLimited) {
9769 L4_MABX_B.Vehicle_speed_target_n = PositionFinalLimited;
9770 } else if (DeltaTime < Time56) {
9771 L4_MABX_B.Vehicle_speed_target_n = Time56;
9772 } else {
9773 L4_MABX_B.Vehicle_speed_target_n = DeltaTime;
9774 }
9775
9776 /* End of Saturate: '<S81>/Saturation8' */
9777
9778 /* Lookup_n-D: '<S194>/2D_Lookup_Table' */
9779 L4_MABX_B.uD_Lookup_Table_l = look2_binlcapw(0.0,
9780 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9781 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9782 L4_MABX_P.uD_Lookup_Table_maxIndex_e, 16U);
9783
9784 /* Product: '<S100>/Divide' */
9785 L4_MABX_B.Divide_f = L4_MABX_B.uD_Lookup_Table_l /
9786 L4_MABX_B.Primary_brake_circuit_pressur_n;
9787
9788 /* Gain: '<S100>/Gain1' */
9789 L4_MABX_B.Gain1_l = L4_MABX_P.Gain1_Gain_o * L4_MABX_B.Divide_f;
9790
9791 /* Saturate: '<S100>/Saturation1' */
9792 DeltaTime = L4_MABX_B.Gain1_l;
9793 Time56 = L4_MABX_P.Saturation1_LowerSat_n;
9794 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_l;
9795 if (DeltaTime > PositionFinalLimited) {
9796 L4_MABX_B.Brake_appl_percent_to_achieve_d = PositionFinalLimited;
9797 } else if (DeltaTime < Time56) {
9798 L4_MABX_B.Brake_appl_percent_to_achieve_d = Time56;
9799 } else {
9800 L4_MABX_B.Brake_appl_percent_to_achieve_d = DeltaTime;
9801 }
9802
9803 /* End of Saturate: '<S100>/Saturation1' */
9804
9805 /* Saturate: '<S81>/Saturation2' incorporates:
9806 * Constant: '<S81>/ACCEL_LIM_MS2_APV'
9807 */
9808 DeltaTime = L4_MABX_P.ACCEL_LIM_MS2_APV_Value;
9809 Time56 = L4_MABX_P.Saturation2_LowerSat_l;
9810 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_a;
9811 if (DeltaTime > PositionFinalLimited) {
9812 L4_MABX_B.ACCEL_LIM_MS2_APV_b = PositionFinalLimited;
9813 } else if (DeltaTime < Time56) {
9814 L4_MABX_B.ACCEL_LIM_MS2_APV_b = Time56;
9815 } else {
9816 L4_MABX_B.ACCEL_LIM_MS2_APV_b = DeltaTime;
9817 }
9818
9819 /* End of Saturate: '<S81>/Saturation2' */
9820
9821 /* Lookup_n-D: '<S195>/2D_Lookup_Table' */
9822 L4_MABX_B.uD_Lookup_Table_i = look2_binlcapw(L4_MABX_B.ACCEL_LIM_MS2_APV_b,
9823 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9824 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9825 L4_MABX_P.uD_Lookup_Table_maxIndex_n, 16U);
9826
9827 /* Product: '<S100>/Divide1' */
9828 L4_MABX_B.Divide1_f = L4_MABX_B.uD_Lookup_Table_i /
9829 L4_MABX_B.Primary_brake_circuit_pressur_n;
9830
9831 /* Gain: '<S100>/Gain2' */
9832 L4_MABX_B.Gain2_e = L4_MABX_P.Gain2_Gain_b * L4_MABX_B.Divide1_f;
9833
9834 /* Saturate: '<S100>/Saturation2' */
9835 DeltaTime = L4_MABX_B.Gain2_e;
9836 Time56 = L4_MABX_P.Saturation2_LowerSat_o;
9837 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_b;
9838 if (DeltaTime > PositionFinalLimited) {
9839 L4_MABX_B.Brake_appl_percent_for_maximum_ = PositionFinalLimited;
9840 } else if (DeltaTime < Time56) {
9841 L4_MABX_B.Brake_appl_percent_for_maximum_ = Time56;
9842 } else {
9843 L4_MABX_B.Brake_appl_percent_for_maximum_ = DeltaTime;
9844 }
9845
9846 /* End of Saturate: '<S100>/Saturation2' */
9847
9848 /* DataTypeConversion: '<S77>/Data Type Conversion2' */
9849 L4_MABX_B.DataTypeConversion2_l3 = L4_MABX_B.SPN1760_GrossCombinationVehicle;
9850
9851 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
9852 * EnablePort: '<S97>/Enable'
9853 */
9854 if (L4_MABX_B.F_Brake_control_active) {
9855 if (!L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
9856 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
9857 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
9858
9859 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
9860 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
9861
9862 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
9863 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
9864
9865 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
9866 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
9867
9868 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
9869 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
9870 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
9871
9872 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
9873 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
9874 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
9875
9876 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
9877 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
9878
9879 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
9880 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
9881 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = true;
9882 }
9883
9884 /* Lookup_n-D: '<S141>/1D_Lookup_Table' */
9885 L4_MABX_B.uD_Lookup_Table_f = look1_binlcapw
9886 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9887 BRK_DEM_KP_DATA_MPV, 7U);
9888
9889 /* Lookup_n-D: '<S142>/1D_Lookup_Table' */
9890 L4_MABX_B.uD_Lookup_Table_p = look1_binlcapw
9891 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9892 BRK_DEM_KI_DATA_MPV, 7U);
9893
9894 /* Lookup_n-D: '<S143>/1D_Lookup_Table' */
9895 L4_MABX_B.uD_Lookup_Table_o5 = look1_binlcapw
9896 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9897 BRK_DEM_KD_DATA_MPV, 7U);
9898
9899 /* Abs: '<S144>/Abs' */
9900 L4_MABX_B.Abs_k1 = fabs(L4_MABX_B.uD_Lookup_Table_p);
9901
9902 /* Abs: '<S144>/Abs1' */
9903 L4_MABX_B.Abs1_eg = fabs(L4_MABX_B.uD_Lookup_Table_o5);
9904
9905 /* DigitalClock: '<S140>/Digital Clock' */
9906 L4_MABX_B.DigitalClock_n = L4_MABX_M->Timing.t[0];
9907
9908 /* UnitDelay: '<S140>/Unit_Delay' */
9909 L4_MABX_B.Unit_Delay_ko = L4_MABX_DW.Unit_Delay_DSTATE_eu;
9910
9911 /* Sum: '<S140>/Subtract' */
9912 L4_MABX_B.Subtract_ac = L4_MABX_B.DigitalClock_n - L4_MABX_B.Unit_Delay_ko;
9913
9914 /* UnitDelay: '<S147>/Unit_Delay' */
9915 L4_MABX_B.Unit_Delay_m1 = L4_MABX_DW.Unit_Delay_DSTATE_n;
9916
9917 /* Logic: '<S147>/Logical Operator1' incorporates:
9918 * Constant: '<S97>/CPV2'
9919 */
9920 L4_MABX_B.LogicalOperator1_pf = (L4_MABX_B.Unit_Delay_m1 ||
9921 L4_MABX_P.CPV2_Value_a);
9922
9923 /* UnitDelay: '<S167>/Unit_Delay1' */
9924 L4_MABX_B.Unit_Delay1_jk = L4_MABX_DW.Unit_Delay1_DSTATE_f;
9925
9926 /* Logic: '<S167>/Logical Operator' */
9927 L4_MABX_B.LogicalOperator_lo = (L4_MABX_B.LogicalOperator1_pf ||
9928 L4_MABX_B.Unit_Delay1_jk);
9929
9930 /* UnitDelay: '<S168>/Unit_Delay' */
9931 L4_MABX_B.Unit_Delay_li = L4_MABX_DW.Unit_Delay_DSTATE_g4;
9932
9933 /* Logic: '<S168>/Logical Operator1' */
9934 L4_MABX_B.LogicalOperator1_oy = (L4_MABX_B.LogicalOperator1_pf ||
9935 L4_MABX_B.Unit_Delay_li);
9936
9937 /* UnitDelay: '<S172>/FixPt Unit Delay2' */
9938 L4_MABX_B.FixPtUnitDelay2_mf = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o;
9939
9940 /* UnitDelay: '<S172>/FixPt Unit Delay1' */
9941 L4_MABX_B.Xold_c = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2;
9942
9943 /* Switch: '<S172>/Init' */
9944 if (L4_MABX_B.FixPtUnitDelay2_mf != 0) {
9945 L4_MABX_B.Init_cy = L4_MABX_B.Vehicle_speed_target_n;
9946 } else {
9947 L4_MABX_B.Init_cy = L4_MABX_B.Xold_c;
9948 }
9949
9950 /* End of Switch: '<S172>/Init' */
9951
9952 /* Abs: '<S168>/Abs' incorporates:
9953 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
9954 */
9955 L4_MABX_B.Abs_o = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
9956
9957 /* Product: '<S168>/Product1' */
9958 L4_MABX_B.Product1_hy = L4_MABX_B.Abs_o * L4_MABX_B.Subtract_ac;
9959
9960 /* Sum: '<S168>/Add1' */
9961 L4_MABX_B.Add1_o = L4_MABX_B.Init_cy + L4_MABX_B.Product1_hy;
9962
9963 /* MinMax: '<S168>/MinMax2' */
9964 DeltaTime = L4_MABX_B.Vehicle_speed_target_n;
9965 PositionFinalLimited = L4_MABX_B.Add1_o;
9966 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9967 PositionFinalLimited = DeltaTime;
9968 }
9969
9970 L4_MABX_B.MinMax2_p = PositionFinalLimited;
9971
9972 /* End of MinMax: '<S168>/MinMax2' */
9973
9974 /* Abs: '<S168>/Abs1' incorporates:
9975 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_DEC_APV'
9976 */
9977 L4_MABX_B.Abs1_g = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_DEC_APV_Valu);
9978
9979 /* Product: '<S168>/Product2' */
9980 L4_MABX_B.Product2_fh = L4_MABX_B.Subtract_ac * L4_MABX_B.Abs1_g;
9981
9982 /* Sum: '<S168>/Subtract1' */
9983 L4_MABX_B.Subtract1_f = L4_MABX_B.Init_cy - L4_MABX_B.Product2_fh;
9984
9985 /* MinMax: '<S168>/MinMax1' */
9986 DeltaTime = L4_MABX_B.MinMax2_p;
9987 PositionFinalLimited = L4_MABX_B.Subtract1_f;
9988 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9989 PositionFinalLimited = DeltaTime;
9990 }
9991
9992 L4_MABX_B.MinMax1_hl = PositionFinalLimited;
9993
9994 /* End of MinMax: '<S168>/MinMax1' */
9995
9996 /* Outputs for Atomic SubSystem: '<S168>/If_Then_Else' */
9997 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_oy,
9998 L4_MABX_B.DataTypeConversion5_o, L4_MABX_B.MinMax1_hl,
9999 &L4_MABX_B.If_Then_Else_iy);
10000
10001 /* End of Outputs for SubSystem: '<S168>/If_Then_Else' */
10002
10003 /* Sum: '<S145>/Subtract' */
10004 L4_MABX_B.Subtract_jh = L4_MABX_B.If_Then_Else_iy.Switch -
10005 L4_MABX_B.DataTypeConversion5_o;
10006
10007 /* MinMax: '<S167>/MinMax1' incorporates:
10008 * Constant: '<S97>/BRK_DECEL_DEM_T_FILT_CTRL_ERROR_APV'
10009 */
10010 DeltaTime = L4_MABX_B.Subtract_ac;
10011 PositionFinalLimited = L4_MABX_P.BRK_DECEL_DEM_T_FILT_CTRL_ERROR;
10012 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10013 PositionFinalLimited = DeltaTime;
10014 }
10015
10016 L4_MABX_B.MinMax1_jg = PositionFinalLimited;
10017
10018 /* End of MinMax: '<S167>/MinMax1' */
10019
10020 /* Saturate: '<S167>/Saturation' */
10021 DeltaTime = L4_MABX_B.MinMax1_jg;
10022 Time56 = L4_MABX_P.Saturation_LowerSat_g;
10023 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o;
10024 if (DeltaTime > PositionFinalLimited) {
10025 L4_MABX_B.Saturation_m = PositionFinalLimited;
10026 } else if (DeltaTime < Time56) {
10027 L4_MABX_B.Saturation_m = Time56;
10028 } else {
10029 L4_MABX_B.Saturation_m = DeltaTime;
10030 }
10031
10032 /* End of Saturate: '<S167>/Saturation' */
10033
10034 /* Product: '<S167>/Divide' */
10035 L4_MABX_B.Divide_af = L4_MABX_B.Subtract_ac / L4_MABX_B.Saturation_m;
10036
10037 /* Product: '<S167>/Product2' */
10038 L4_MABX_B.Product2_ce = L4_MABX_B.Subtract_jh * L4_MABX_B.Divide_af;
10039
10040 /* Sum: '<S167>/Subtract1' incorporates:
10041 * Constant: '<S167>/Constant1'
10042 */
10043 L4_MABX_B.Subtract1_cr = L4_MABX_P.Constant1_Value_o - L4_MABX_B.Divide_af;
10044
10045 /* UnitDelay: '<S167>/Unit_Delay2' */
10046 L4_MABX_B.Unit_Delay2_a = L4_MABX_DW.Unit_Delay2_DSTATE_c;
10047
10048 /* Product: '<S167>/Product1' */
10049 L4_MABX_B.Product1_ch = L4_MABX_B.Subtract1_cr * L4_MABX_B.Unit_Delay2_a;
10050
10051 /* Sum: '<S167>/Add1' */
10052 L4_MABX_B.Add1_hl = L4_MABX_B.Product2_ce + L4_MABX_B.Product1_ch;
10053
10054 /* Outputs for Atomic SubSystem: '<S167>/If_Then_Else' */
10055 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_lo, L4_MABX_B.Subtract_jh,
10056 L4_MABX_B.Add1_hl, &L4_MABX_B.If_Then_Else_bc);
10057
10058 /* End of Outputs for SubSystem: '<S167>/If_Then_Else' */
10059
10060 /* RelationalOperator: '<S152>/Compare' incorporates:
10061 * Constant: '<S152>/Constant'
10062 */
10063 L4_MABX_B.Compare_ni = (L4_MABX_B.Abs1_eg >
10064 L4_MABX_P.CompareToConstant1_const_m);
10065
10066 /* Outputs for Enabled SubSystem: '<S144>/Calculate_D_term' */
10067
10068 /* Constant: '<S97>/BRK_DECEL_DEM_T_FILT_D_APV' */
10069 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_ni, L4_MABX_B.uD_Lookup_Table_o5,
10070 L4_MABX_B.Subtract_ac, L4_MABX_B.LogicalOperator1_pf,
10071 L4_MABX_B.If_Then_Else_bc.Switch,
10072 L4_MABX_P.BRK_DECEL_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term_p,
10073 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10074
10075 /* End of Outputs for SubSystem: '<S144>/Calculate_D_term' */
10076
10077 /* Product: '<S150>/Product' */
10078 L4_MABX_B.Product_f = L4_MABX_B.uD_Lookup_Table_f *
10079 L4_MABX_B.If_Then_Else_bc.Switch;
10080
10081 /* UnitDelay: '<S139>/Unit_Delay' */
10082 L4_MABX_B.Unit_Delay_fg = L4_MABX_DW.Unit_Delay_DSTATE_h;
10083
10084 /* RelationalOperator: '<S151>/Compare' incorporates:
10085 * Constant: '<S151>/Constant'
10086 */
10087 L4_MABX_B.Compare_dl = (L4_MABX_B.Abs_k1 >
10088 L4_MABX_P.CompareToConstant_const_c);
10089
10090 /* Outputs for Enabled SubSystem: '<S144>/Calculate_I_term' */
10091
10092 /* Constant: '<S97>/BRK_DECEL_DEM_AW_COND_INT_APV' incorporates:
10093 * Constant: '<S97>/BRK_DECEL_DEM_AW_HYSTERESIS_APV'
10094 * Constant: '<S97>/CPV1'
10095 */
10096 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_dl, L4_MABX_B.Product_f,
10097 L4_MABX_B.uD_Lookup_Table_p, L4_MABX_B.Brake_appl_percent,
10098 L4_MABX_B.If_Then_Else_bc.Switch, L4_MABX_B.LogicalOperator1_pf,
10099 L4_MABX_B.Subtract_ac, L4_MABX_B.Brake_appl_percent_to_achieve_d,
10100 L4_MABX_P.BRK_DECEL_DEM_AW_COND_INT_APV_V,
10101 L4_MABX_P.BRK_DECEL_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_no,
10102 L4_MABX_B.Unit_Delay_fg, &L4_MABX_B.Calculate_I_term_e,
10103 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10104
10105 /* End of Outputs for SubSystem: '<S144>/Calculate_I_term' */
10106
10107 /* RelationalOperator: '<S170>/min_relop' incorporates:
10108 * Constant: '<S170>/min_val'
10109 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
10110 */
10111 L4_MABX_B.min_relop_a5 = (L4_MABX_P.CheckStaticLowerBound_min_d <=
10112 L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
10113
10114 /* Assertion: '<S170>/Assertion' */
10115 utAssert(L4_MABX_B.min_relop_a5);
10116
10117 /* Sum: '<S146>/Add' */
10118 L4_MABX_B.Add_mh = ((L4_MABX_B.Product_f +
10119 L4_MABX_B.Calculate_I_term_e.If_Then_Else.Switch) +
10120 L4_MABX_B.Calculate_D_term_p.Subtract) +
10121 L4_MABX_B.Brake_appl_percent_to_achieve_d;
10122
10123 /* RelationalOperator: '<S173>/Relational Operator1' */
10124 L4_MABX_B.RelationalOperator1_k = (L4_MABX_B.Add_mh >=
10125 L4_MABX_B.Brake_appl_percent_for_maximum_);
10126
10127 /* RelationalOperator: '<S173>/Relational Operator' incorporates:
10128 * Constant: '<S97>/CPV'
10129 */
10130 L4_MABX_B.RelationalOperator_m = (L4_MABX_B.Add_mh <= L4_MABX_P.CPV_Value_i);
10131
10132 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else1' */
10133
10134 /* Constant: '<S97>/CPV' */
10135 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m, L4_MABX_P.CPV_Value_i,
10136 L4_MABX_B.Add_mh, &L4_MABX_B.If_Then_Else1_g);
10137
10138 /* End of Outputs for SubSystem: '<S173>/If_Then_Else1' */
10139
10140 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else' */
10141 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_k,
10142 L4_MABX_B.Brake_appl_percent_for_maximum_,
10143 L4_MABX_B.If_Then_Else1_g.Switch,
10144 &L4_MABX_B.If_Then_Else_fo);
10145
10146 /* End of Outputs for SubSystem: '<S173>/If_Then_Else' */
10147 } else {
10148 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
10149 /* Disable for Enabled SubSystem: '<S144>/Calculate_D_term' */
10150 if (L4_MABX_DW.Calculate_D_term_p.Calculate_D_term_MODE) {
10151 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_p,
10152 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10153 }
10154
10155 /* End of Disable for SubSystem: '<S144>/Calculate_D_term' */
10156
10157 /* Disable for Enabled SubSystem: '<S144>/Calculate_I_term' */
10158 if (L4_MABX_DW.Calculate_I_term_e.Calculate_I_term_MODE) {
10159 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_e,
10160 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10161 }
10162
10163 /* End of Disable for SubSystem: '<S144>/Calculate_I_term' */
10164
10165 /* Disable for Outport: '<S97>/PID_output' */
10166 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
10167 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
10168 }
10169 }
10170
10171 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
10172
10173 /* RelationalOperator: '<S98>/Relational Operator2' incorporates:
10174 * Constant: '<S98>/CPV2'
10175 */
10176 L4_MABX_B.F_Driver_braking = (L4_MABX_B.XPRControlMode ==
10177 L4_MABX_P.CPV2_Value_hm);
10178
10179 /* Logic: '<S98>/Logical Operator2' */
10180 L4_MABX_B.F_Operator_brake_appl = (L4_MABX_B.If_Then_Else_l.Switch &&
10181 L4_MABX_B.F_Driver_braking);
10182
10183 /* RelationalOperator: '<S98>/Relational Operator5' incorporates:
10184 * Constant: '<S98>/BENDIX_2C2_BRAKE_APPL_THRESHOLD_KPA_APV'
10185 */
10186 L4_MABX_B.RelationalOperator5[0] = (L4_MABX_B.Bendix_2C2_Primary_brake_circui >
10187 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10188 L4_MABX_B.RelationalOperator5[1] = (L4_MABX_B.Bendix_2C2_Secondary_brake_circ >
10189 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10190
10191 /* Logic: '<S98>/Logical Operator6' */
10192 L4_MABX_B.F_Bendix_2C2_service_brake_pres = (L4_MABX_B.RelationalOperator5[0] ||
10193 L4_MABX_B.RelationalOperator5[1]);
10194
10195 /* RelationalOperator: '<S98>/Relational Operator' incorporates:
10196 * Constant: '<S98>/CPV'
10197 */
10198 L4_MABX_B.F_Bendix_2C2_braking = (L4_MABX_B.XPRControlMode ==
10199 L4_MABX_P.CPV_Value_e);
10200
10201 /* Logic: '<S98>/Logical Operator7' */
10202 L4_MABX_B.F_ADAS_brake_appl = (L4_MABX_B.If_Then_Else_l.Switch &&
10203 L4_MABX_B.F_Bendix_2C2_braking && L4_MABX_B.F_Bendix_2C2_service_brake_pres);
10204
10205 /* RelationalOperator: '<S98>/Relational Operator1' incorporates:
10206 * Constant: '<S98>/CPV1'
10207 */
10208 L4_MABX_B.F_ADAS_brake_error = (L4_MABX_B.XPRErrorState !=
10209 L4_MABX_P.CPV1_Value_i5);
10210
10211 /* Lookup_n-D: '<S193>/2D_Lookup_Table' */
10212 L4_MABX_B.uD_Lookup_Table_le = look2_binlcapw
10213 (L4_MABX_B.brake_system_avg_appl_pressure_,
10214 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_PRESS_KPA_STEP_MPV,
10215 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_DECEL_RATE_DATA_MPV,
10216 L4_MABX_P.uD_Lookup_Table_maxIndex_m, 16U);
10217
10218 /* Saturate: '<S100>/Saturation4' */
10219 DeltaTime = L4_MABX_B.uD_Lookup_Table_le;
10220 Time56 = L4_MABX_P.Saturation4_LowerSat_a;
10221 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_f;
10222 if (DeltaTime > PositionFinalLimited) {
10223 L4_MABX_B.Decel_rate_calculated_ms2 = PositionFinalLimited;
10224 } else if (DeltaTime < Time56) {
10225 L4_MABX_B.Decel_rate_calculated_ms2 = Time56;
10226 } else {
10227 L4_MABX_B.Decel_rate_calculated_ms2 = DeltaTime;
10228 }
10229
10230 /* End of Saturate: '<S100>/Saturation4' */
10231
10232 /* DataTypeConversion: '<S101>/Data Type Conversion' */
10233 L4_MABX_B.DataTypeConversion_p = L4_MABX_B.SFunction1_o1_br;
10234
10235 /* DataTypeConversion: '<S101>/Data Type Conversion1' */
10236 L4_MABX_B.DataTypeConversion1_k = L4_MABX_B.SFunction1_o2_oc;
10237
10238 /* Sum: '<S101>/Add' */
10239 L4_MABX_B.Add_m = L4_MABX_B.DataTypeConversion_p +
10240 L4_MABX_B.DataTypeConversion1_k;
10241
10242 /* UnitDelay: '<S101>/Unit_Delay' */
10243 L4_MABX_B.Unit_Delay_dy = L4_MABX_DW.Unit_Delay_DSTATE_eu4;
10244
10245 /* UnitDelay: '<S197>/Unit_Delay1' */
10246 L4_MABX_B.Unit_Delay1_k = L4_MABX_DW.Unit_Delay1_DSTATE_d;
10247
10248 /* Logic: '<S197>/Logical Operator' */
10249 L4_MABX_B.LogicalOperator_fc = (L4_MABX_B.Unit_Delay_dy ||
10250 L4_MABX_B.Unit_Delay1_k);
10251
10252 /* Gain: '<S101>/Gain' */
10253 L4_MABX_B.Gain_j = L4_MABX_P.Gain_Gain_f * L4_MABX_B.Add_m;
10254
10255 /* MinMax: '<S197>/MinMax1' incorporates:
10256 * Constant: '<S101>/Constant10'
10257 * Constant: '<S101>/VSPD_CAN_HRW_0B_FILT_T_APV'
10258 */
10259 DeltaTime = L4_MABX_P.Constant10_Value;
10260 PositionFinalLimited = L4_MABX_P.VSPD_CAN_HRW_0B_FILT_T_APV_Valu;
10261 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10262 PositionFinalLimited = DeltaTime;
10263 }
10264
10265 L4_MABX_B.MinMax1_i = PositionFinalLimited;
10266
10267 /* End of MinMax: '<S197>/MinMax1' */
10268
10269 /* Saturate: '<S197>/Saturation' */
10270 DeltaTime = L4_MABX_B.MinMax1_i;
10271 Time56 = L4_MABX_P.Saturation_LowerSat_b;
10272 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_l;
10273 if (DeltaTime > PositionFinalLimited) {
10274 L4_MABX_B.Saturation_n = PositionFinalLimited;
10275 } else if (DeltaTime < Time56) {
10276 L4_MABX_B.Saturation_n = Time56;
10277 } else {
10278 L4_MABX_B.Saturation_n = DeltaTime;
10279 }
10280
10281 /* End of Saturate: '<S197>/Saturation' */
10282
10283 /* Product: '<S197>/Divide' incorporates:
10284 * Constant: '<S101>/Constant10'
10285 */
10286 L4_MABX_B.Divide_a = L4_MABX_P.Constant10_Value / L4_MABX_B.Saturation_n;
10287
10288 /* Product: '<S197>/Product2' */
10289 L4_MABX_B.Product2_o = L4_MABX_B.Gain_j * L4_MABX_B.Divide_a;
10290
10291 /* Sum: '<S197>/Subtract1' incorporates:
10292 * Constant: '<S197>/Constant1'
10293 */
10294 L4_MABX_B.Subtract1_e = L4_MABX_P.Constant1_Value_od - L4_MABX_B.Divide_a;
10295
10296 /* UnitDelay: '<S197>/Unit_Delay2' */
10297 L4_MABX_B.Unit_Delay2_g = L4_MABX_DW.Unit_Delay2_DSTATE_e;
10298
10299 /* Product: '<S197>/Product1' */
10300 L4_MABX_B.Product1_o = L4_MABX_B.Subtract1_e * L4_MABX_B.Unit_Delay2_g;
10301
10302 /* Sum: '<S197>/Add1' */
10303 L4_MABX_B.Add1_n1 = L4_MABX_B.Product2_o + L4_MABX_B.Product1_o;
10304
10305 /* Outputs for Atomic SubSystem: '<S197>/If_Then_Else' */
10306 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_fc, L4_MABX_B.Gain_j,
10307 L4_MABX_B.Add1_n1, &L4_MABX_B.If_Then_Else_g);
10308
10309 /* End of Outputs for SubSystem: '<S197>/If_Then_Else' */
10310
10311 /* SampleTimeMath: '<S196>/TSamp'
10312 *
10313 * About '<S196>/TSamp':
10314 * y = u * K where K = 1 / ( w * Ts )
10315 */
10316 L4_MABX_B.TSamp = L4_MABX_B.If_Then_Else_g.Switch * L4_MABX_P.TSamp_WtEt;
10317
10318 /* UnitDelay: '<S196>/UD' */
10319 L4_MABX_B.Uk1_b = L4_MABX_DW.UD_DSTATE;
10320
10321 /* Sum: '<S196>/Diff' */
10322 L4_MABX_B.Diff = L4_MABX_B.TSamp - L4_MABX_B.Uk1_b;
10323
10324 /* MinMax: '<S77>/MinMax' */
10325 DeltaTime = L4_MABX_B.If_Then_Else_nj.Switch;
10326 PositionFinalLimited = L4_MABX_B.If_Then_Else_fo.Switch;
10327 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10328 PositionFinalLimited = DeltaTime;
10329 }
10330
10331 L4_MABX_B.BrakingPID_Y_percent = PositionFinalLimited;
10332
10333 /* End of MinMax: '<S77>/MinMax' */
10334
10335 /* Gain: '<S77>/Gain' */
10336 L4_MABX_B.BrakingPID_Y_k = L4_MABX_P.Gain_Gain_no *
10337 L4_MABX_B.BrakingPID_Y_percent;
10338
10339 /* DataTypeConversion: '<S79>/Data Type Conversion' */
10340 L4_MABX_B.DataTypeConversion_de = AutonomousEnabled;
10341
10342 /* DataTypeConversion: '<S79>/Data Type Conversion2' */
10343 L4_MABX_B.DataTypeConversion2_lf = (real32_T)L4_MABX_B.SFunction1_o1_h54;
10344
10345 /* DataTypeConversion: '<S79>/Data Type Conversion1' */
10346 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_k);
10347 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10348 PositionFinalLimited = 0.0;
10349 } else {
10350 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10351 }
10352
10353 L4_MABX_B.DataTypeConversion1_f1 = (uint8_T)(PositionFinalLimited < 0.0 ?
10354 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10355 (uint8_T)PositionFinalLimited);
10356
10357 /* End of DataTypeConversion: '<S79>/Data Type Conversion1' */
10358
10359 /* Chart: '<S79>/Chart' incorporates:
10360 * Constant: '<S79>/Constant'
10361 */
10362 /* Gateway: STATE_CONTROL_10ms/Chart */
10363 /* During: STATE_CONTROL_10ms/Chart */
10364 if (L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ == 0U) {
10365 /* Entry: STATE_CONTROL_10ms/Chart */
10366 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 1U;
10367
10368 /* Entry Internal: STATE_CONTROL_10ms/Chart */
10369 /* Transition: '<S201>:2' */
10370 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_Init;
10371
10372 /* Entry 'Init': '<S201>:1' */
10373 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10374 } else {
10375 switch (L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA) {
10376 case L4_MABX_IN_Init:
10377 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10378
10379 /* During 'Init': '<S201>:1' */
10380 if (!L4_MABX_P.Constant_Value_cp) {
10381 /* Transition: '<S201>:9' */
10382 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10383
10384 /* Entry 'OperatorDisabled': '<S201>:3' */
10385 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10386 }
10387 break;
10388
10389 case L4_MABX_IN_OperatorDisabled:
10390 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10391
10392 /* During 'OperatorDisabled': '<S201>:3' */
10393 if (L4_MABX_B.DataTypeConversion_de) {
10394 /* Transition: '<S201>:11' */
10395 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorEnabled;
10396
10397 /* Entry 'OperatorEnabled': '<S201>:10' */
10398 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10399
10400 /* Entry Internal 'OperatorEnabled': '<S201>:10' */
10401 /* Transition: '<S201>:16' */
10402 /* Entry 'AutoControlEnabled': '<S201>:13' */
10403 /* Entry Internal 'AutoControlEnabled': '<S201>:13' */
10404 /* Transition: '<S201>:15' */
10405 /* Entry 'init': '<S201>:14' */
10406 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10407 }
10408 break;
10409
10410 default:
10411 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10412
10413 /* During 'OperatorEnabled': '<S201>:10' */
10414 if ((!L4_MABX_B.DataTypeConversion_de) || L4_MABX_P.Constant_Value_cp) {
10415 /* Transition: '<S201>:12' */
10416 /* Exit Internal 'OperatorEnabled': '<S201>:10' */
10417 /* Exit Internal 'AutoControlEnabled': '<S201>:13' */
10418 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10419
10420 /* Entry 'OperatorDisabled': '<S201>:3' */
10421 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10422 } else {
10423 /* During 'AutoControlEnabled': '<S201>:13' */
10424 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10425
10426 /* During 'init': '<S201>:14' */
10427 }
10428 break;
10429 }
10430 }
10431
10432 /* End of Chart: '<S79>/Chart' */
10433
10434 /* Outputs for Enabled SubSystem: '<S79>/Engine_speed_target' incorporates:
10435 * EnablePort: '<S204>/Enable'
10436 */
10437 if (L4_MABX_B.LogicalOperator_k) {
10438 if (!L4_MABX_DW.Engine_speed_target_MODE) {
10439 L4_MABX_DW.Engine_speed_target_MODE = true;
10440 }
10441
10442 /* Gain: '<S204>/KPH_TO_MPH' */
10443 L4_MABX_B.KPH_TO_MPH = L4_MABX_P.KPH_TO_MPH_Gain *
10444 L4_MABX_B.VSPD_TARGET_KPH_APV_g;
10445
10446 /* MinMax: '<S204>/MinMax' incorporates:
10447 * Constant: '<S204>/Constant2'
10448 * Constant: '<S204>/TIRE_DIAM_INCHES_APV'
10449 */
10450 DeltaTime = L4_MABX_P.TIRE_DIAM_INCHES_APV_Value;
10451 PositionFinalLimited = L4_MABX_P.Constant2_Value_m;
10452 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10453 PositionFinalLimited = DeltaTime;
10454 }
10455
10456 L4_MABX_B.MinMax_dl = PositionFinalLimited;
10457
10458 /* End of MinMax: '<S204>/MinMax' */
10459
10460 /* Product: '<S204>/Divide' incorporates:
10461 * Constant: '<S204>/CONVERSION_CONSTANT_CPV'
10462 * Constant: '<S204>/REAR_AXLE_RATIO_VALUE_APV'
10463 */
10464 L4_MABX_B.Divide_pm = L4_MABX_B.KPH_TO_MPH *
10465 L4_MABX_B.SPN526_TransActualGearRatio *
10466 L4_MABX_P.REAR_AXLE_RATIO_VALUE_APV_Value *
10467 L4_MABX_P.CONVERSION_CONSTANT_CPV_Value / L4_MABX_B.MinMax_dl;
10468
10469 /* MinMax: '<S204>/MinMax1' incorporates:
10470 * Constant: '<S204>/Constant1'
10471 */
10472 DeltaTime = L4_MABX_B.Divide_pm;
10473 PositionFinalLimited = L4_MABX_P.Constant1_Value_f;
10474 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10475 PositionFinalLimited = DeltaTime;
10476 }
10477
10478 L4_MABX_B.MinMax1_n = PositionFinalLimited;
10479
10480 /* End of MinMax: '<S204>/MinMax1' */
10481 } else {
10482 if (L4_MABX_DW.Engine_speed_target_MODE) {
10483 /* Disable for Outport: '<S204>/Out1' */
10484 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
10485 L4_MABX_DW.Engine_speed_target_MODE = false;
10486 }
10487 }
10488
10489 /* End of Outputs for SubSystem: '<S79>/Engine_speed_target' */
10490
10491 /* RelationalOperator: '<S205>/Relational Operator1' incorporates:
10492 * Constant: '<S205>/CPV3'
10493 */
10494 L4_MABX_B.RelationalOperator1_c = (L4_MABX_B.SFunction1_o1_h54 <=
10495 L4_MABX_P.CPV3_Value_n);
10496
10497 /* RelationalOperator: '<S205>/Relational Operator3' incorporates:
10498 * Constant: '<S205>/CPV1'
10499 */
10500 L4_MABX_B.RelationalOperator3_g = (L4_MABX_B.SPN524_TransSelectedGear ==
10501 L4_MABX_P.CPV1_Value_n);
10502
10503 /* RelationalOperator: '<S205>/Relational Operator2' incorporates:
10504 * Constant: '<S205>/CPV2'
10505 */
10506 L4_MABX_B.RelationalOperator2_f = (L4_MABX_B.SPN523_TransCurrentGear ==
10507 L4_MABX_P.CPV2_Value_h);
10508
10509 /* RelationalOperator: '<S205>/Relational Operator4' incorporates:
10510 * Constant: '<S205>/CPV5'
10511 */
10512 L4_MABX_B.RelationalOperator4_o = (L4_MABX_B.SFunction1_o2_hi ==
10513 L4_MABX_P.CPV5_Value_g);
10514
10515 /* Logic: '<S205>/Logical Operator' */
10516 L4_MABX_B.F_Ignition_sw_off_conditions_me = (L4_MABX_B.RelationalOperator1_c &&
10517 L4_MABX_B.RelationalOperator3_g && L4_MABX_B.RelationalOperator2_f &&
10518 L4_MABX_B.RelationalOperator4_o);
10519
10520 /* RelationalOperator: '<S205>/Relational Operator' incorporates:
10521 * Constant: '<S205>/IGN_SW_VOLTAGE_THRESHOLD_APV'
10522 */
10523 L4_MABX_B.F_Ignition_sw_on = (L4_MABX_B.IgnitionKeySwitch_voltage >=
10524 L4_MABX_P.IGN_SW_VOLTAGE_THRESHOLD_APV_Va);
10525
10526 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport3' incorporates:
10527 * Chart: '<S205>/Relay_control_state_machine'
10528 * Constant: '<S205>/IGN_RELAY_ON_DELAY_SECS_APV'
10529 * Constant: '<S205>/INVERTER_RELAY_ON_DELAY_SECS_APV'
10530 * Constant: '<S205>/MABX_RELAY_ON_DELAY_SECS_APV'
10531 * Constant: '<S205>/SENSOR_RELAY_ON_DELAY_SECS_APV'
10532 */
10533 L4_MABX_B.TmpSignalConversionAtSFunctionI[0] =
10534 L4_MABX_P.IGN_RELAY_ON_DELAY_SECS_APV_Val;
10535 L4_MABX_B.TmpSignalConversionAtSFunctionI[1] =
10536 L4_MABX_P.INVERTER_RELAY_ON_DELAY_SECS_AP;
10537 L4_MABX_B.TmpSignalConversionAtSFunctionI[2] =
10538 L4_MABX_P.MABX_RELAY_ON_DELAY_SECS_APV_Va;
10539 L4_MABX_B.TmpSignalConversionAtSFunctionI[3] =
10540 L4_MABX_P.SENSOR_RELAY_ON_DELAY_SECS_APV_;
10541
10542 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport4' incorporates:
10543 * Chart: '<S205>/Relay_control_state_machine'
10544 * Constant: '<S205>/IGN_RELAY_OFF_DELAY_SECS_APV'
10545 * Constant: '<S205>/INVERTER_RELAY_OFF_DELAY_SECS_APV'
10546 * Constant: '<S205>/MABX_RELAY_OFF_DELAY_SECS_APV'
10547 * Constant: '<S205>/SENSOR_RELAY_OFF_DELAY_SECS_APV'
10548 */
10549 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0] =
10550 L4_MABX_P.IGN_RELAY_OFF_DELAY_SECS_APV_Va;
10551 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1] =
10552 L4_MABX_P.INVERTER_RELAY_OFF_DELAY_SECS_A;
10553 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2] =
10554 L4_MABX_P.MABX_RELAY_OFF_DELAY_SECS_APV_V;
10555 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3] =
10556 L4_MABX_P.SENSOR_RELAY_OFF_DELAY_SECS_APV;
10557
10558 /* Chart: '<S205>/Relay_control_state_machine' */
10559 if (L4_MABX_DW.temporalCounter_i1 < MAX_uint32_T) {
10560 L4_MABX_DW.temporalCounter_i1++;
10561 }
10562
10563 /* Gateway: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10564 /* During: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10565 if (L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S == 0U) {
10566 /* Entry: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10567 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 1U;
10568
10569 /* Entry Internal: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10570 /* Transition: '<S212>:13' */
10571 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10572 L4_MABX_enter_atomic_INITIAL();
10573 } else {
10574 switch (L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT) {
10575 case L4_MABX_IN_INITIAL:
10576 L4_MABX_B.F_Ignition_relay_command_i = false;
10577 L4_MABX_B.F_Inverter_relay_command_p = false;
10578 L4_MABX_B.F_MABX_relay_command_n = false;
10579 L4_MABX_B.F_Sensor_relay_command_k = false;
10580
10581 /* During 'INITIAL': '<S212>:12' */
10582 if (L4_MABX_B.F_Ignition_sw_on) {
10583 /* Transition: '<S212>:17' */
10584 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_POWER_UP_ROUTINE;
10585
10586 /* Entry Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10587 /* Transition: '<S212>:64' */
10588 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_WAIT;
10589 L4_MABX_DW.temporalCounter_i1 = 0U;
10590 }
10591 break;
10592
10593 case L4_MABX_IN_POWER_DOWN_ROUTINE:
10594 /* During 'POWER_DOWN_ROUTINE': '<S212>:30' */
10595 switch (L4_MABX_DW.is_POWER_DOWN_ROUTINE) {
10596 case L4_MABX_IN_IGN_RELAY_UNLATCH:
10597 L4_MABX_B.F_Ignition_relay_command_i = false;
10598
10599 /* During 'IGN_RELAY_UNLATCH': '<S212>:29' */
10600 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10601 (L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A * 100.0)) {
10602 /* Transition: '<S212>:23' */
10603 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_INV_RELAY_UNLATCH;
10604 L4_MABX_DW.temporalCounter_i1 = 0U;
10605
10606 /* Entry 'INV_RELAY_UNLATCH': '<S212>:28' */
10607 L4_MABX_B.F_Inverter_relay_command_p = false;
10608 }
10609 break;
10610
10611 case L4_MABX_IN_INV_RELAY_UNLATCH:
10612 L4_MABX_B.F_Inverter_relay_command_p = false;
10613
10614 /* During 'INV_RELAY_UNLATCH': '<S212>:28' */
10615 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10616 (L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10617 /* Transition: '<S212>:22' */
10618 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_SENSOR_RELAY_UNLATCH;
10619 L4_MABX_DW.temporalCounter_i1 = 0U;
10620
10621 /* Entry 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10622 L4_MABX_B.F_Sensor_relay_command_k = false;
10623 }
10624 break;
10625
10626 case L4_MABX_IN_MABX_RELAY_UNLATCH:
10627 L4_MABX_B.F_MABX_relay_command_n = false;
10628
10629 /* During 'MABX_RELAY_UNLATCH': '<S212>:27' */
10630 /* Transition: '<S212>:45' */
10631 /* Transition: '<S212>:46' */
10632 /* Transition: '<S212>:47' */
10633 /* Transition: '<S212>:48' */
10634 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10635 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10636 L4_MABX_enter_atomic_INITIAL();
10637 break;
10638
10639 case L4_MABX_IN_SENSOR_RELAY_UNLATCH:
10640 L4_MABX_B.F_Sensor_relay_command_k = false;
10641
10642 /* During 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10643 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10644 (L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10645 /* Transition: '<S212>:26' */
10646 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_MABX_RELAY_UNLATCH;
10647
10648 /* Entry 'MABX_RELAY_UNLATCH': '<S212>:27' */
10649 L4_MABX_B.F_MABX_relay_command_n = false;
10650 }
10651 break;
10652
10653 default:
10654 /* During 'WAIT': '<S212>:65' */
10655 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10656 (L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10657 /* Transition: '<S212>:55' */
10658 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_IGN_RELAY_UNLATCH;
10659 L4_MABX_DW.temporalCounter_i1 = 0U;
10660
10661 /* Entry 'IGN_RELAY_UNLATCH': '<S212>:29' */
10662 L4_MABX_B.F_Ignition_relay_command_i = false;
10663 }
10664 break;
10665 }
10666 break;
10667
10668 default:
10669 /* During 'POWER_UP_ROUTINE': '<S212>:16' */
10670 zcEvent = ((!L4_MABX_B.F_Ignition_sw_on) &&
10671 L4_MABX_B.F_Ignition_sw_off_conditions_me);
10672 if (zcEvent) {
10673 /* Transition: '<S212>:31' */
10674 /* Exit Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10675 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10676 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT =
10677 L4_MABX_IN_POWER_DOWN_ROUTINE;
10678
10679 /* Entry Internal 'POWER_DOWN_ROUTINE': '<S212>:30' */
10680 /* Transition: '<S212>:66' */
10681 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_WAIT;
10682 L4_MABX_DW.temporalCounter_i1 = 0U;
10683 } else {
10684 switch (L4_MABX_DW.is_POWER_UP_ROUTINE) {
10685 case L4_MABX_IN_IGN_RELAY_LATCH:
10686 L4_MABX_B.F_Ignition_relay_command_i = true;
10687
10688 /* During 'IGN_RELAY_LATCH': '<S212>:20' */
10689 break;
10690
10691 case L4_MABX_IN_INV_RELAY_LATCH:
10692 L4_MABX_B.F_Inverter_relay_command_p = true;
10693
10694 /* During 'INV_RELAY_LATCH': '<S212>:19' */
10695 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10696 (L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10697 /* Transition: '<S212>:21' */
10698 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_IGN_RELAY_LATCH;
10699
10700 /* Entry 'IGN_RELAY_LATCH': '<S212>:20' */
10701 L4_MABX_B.F_Ignition_relay_command_i = true;
10702 }
10703 break;
10704
10705 case L4_MABX_IN_MABX_RELAY_LATCH:
10706 L4_MABX_B.F_MABX_relay_command_n = true;
10707
10708 /* During 'MABX_RELAY_LATCH': '<S212>:10' */
10709 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10710 (L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10711 /* Transition: '<S212>:15' */
10712 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_SENSOR_RELAY_LATCH;
10713 L4_MABX_DW.temporalCounter_i1 = 0U;
10714
10715 /* Entry 'SENSOR_RELAY_LATCH': '<S212>:14' */
10716 L4_MABX_B.F_Sensor_relay_command_k = true;
10717 }
10718 break;
10719
10720 case L4_MABX_IN_SENSOR_RELAY_LATCH:
10721 L4_MABX_B.F_Sensor_relay_command_k = true;
10722
10723 /* During 'SENSOR_RELAY_LATCH': '<S212>:14' */
10724 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10725 (L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP * 100.0)) {
10726 /* Transition: '<S212>:18' */
10727 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_INV_RELAY_LATCH;
10728 L4_MABX_DW.temporalCounter_i1 = 0U;
10729
10730 /* Entry 'INV_RELAY_LATCH': '<S212>:19' */
10731 L4_MABX_B.F_Inverter_relay_command_p = true;
10732 }
10733 break;
10734
10735 default:
10736 /* During 'WAIT': '<S212>:63' */
10737 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10738 (L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10739 /* Transition: '<S212>:11' */
10740 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_MABX_RELAY_LATCH;
10741 L4_MABX_DW.temporalCounter_i1 = 0U;
10742
10743 /* Entry 'MABX_RELAY_LATCH': '<S212>:10' */
10744 L4_MABX_B.F_MABX_relay_command_n = true;
10745 }
10746 break;
10747 }
10748 }
10749 break;
10750 }
10751 }
10752
10753 /* Lookup_n-D: '<S79>/CurveBasedSpeedSetpoint' incorporates:
10754 * Constant: '<S80>/zero'
10755 */
10756 L4_MABX_B.CurveBasedSpeedSetpoint = look1_binlcapw(L4_MABX_P.zero_Value,
10757 L4_MABX_P.CurveBasedSpeedSetpoint_bp01Dat,
10758 L4_MABX_P.CurveBasedSpeedSetpoint_tableDa, 4U);
10759
10760 /* Lookup_n-D: '<S80>/1-D Lookup Table1' */
10761 L4_MABX_B.uDLookupTable1 = look1_binlxpw(SteerWheelAngle,
10762 L4_MABX_P.uDLookupTable1_bp01Data, L4_MABX_P.uDLookupTable1_tableData, 16U);
10763
10764 /* Product: '<S279>/Divide' incorporates:
10765 * Constant: '<S271>/Constant'
10766 * Constant: '<S271>/Constant1'
10767 */
10768 L4_MABX_B.Divide_nn = (real32_T)(L4_MABX_P.Constant1_Value_i /
10769 L4_MABX_P.Constant_Value_e);
10770
10771 /* DataTypeConversion: '<S80>/Data Type Conversion5' */
10772 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o2_iv);
10773 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10774 PositionFinalLimited = 0.0;
10775 } else {
10776 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10777 }
10778
10779 L4_MABX_B.DataTypeConversion5_e3 = (uint8_T)(PositionFinalLimited < 0.0 ?
10780 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10781 (uint8_T)PositionFinalLimited);
10782
10783 /* End of DataTypeConversion: '<S80>/Data Type Conversion5' */
10784
10785 /* Chart: '<S277>/Chart' */
10786 /* Gateway: STEERCTRL_10ms/slew/Chart */
10787 /* During: STEERCTRL_10ms/slew/Chart */
10788 if (L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ == 0U) {
10789 /* Entry: STEERCTRL_10ms/slew/Chart */
10790 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 1U;
10791
10792 /* Entry Internal: STEERCTRL_10ms/slew/Chart */
10793 /* Transition: '<S327>:4' */
10794 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10795
10796 /* Entry 'init': '<S327>:1' */
10797 L4_MABX_B.stateChange = 0U;
10798 } else {
10799 switch (L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE) {
10800 case L4_MABX_IN_OneLane:
10801 /* During 'OneLane': '<S327>:7' */
10802 /* Transition: '<S327>:20' */
10803 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane1;
10804
10805 /* Entry 'OneLane1': '<S327>:18' */
10806 L4_MABX_B.stateChange = 0U;
10807 break;
10808
10809 case L4_MABX_IN_OneLane1:
10810 L4_MABX_B.stateChange = 0U;
10811
10812 /* During 'OneLane1': '<S327>:18' */
10813 zcEvent = ((L4_MABX_B.DataTypeConversion5_e3 < 3) ||
10814 (L4_MABX_B.DataTypeConversion5_e3 > 18));
10815 if (zcEvent) {
10816 /* Transition: '<S327>:22' */
10817 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10818
10819 /* Entry 'init': '<S327>:1' */
10820 L4_MABX_B.stateChange = 0U;
10821 }
10822 break;
10823
10824 case L4_MABX_IN_TwoLanes:
10825 /* During 'TwoLanes': '<S327>:8' */
10826 /* Transition: '<S327>:21' */
10827 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes1;
10828
10829 /* Entry 'TwoLanes1': '<S327>:19' */
10830 L4_MABX_B.stateChange = 0U;
10831 break;
10832
10833 case L4_MABX_IN_TwoLanes1:
10834 L4_MABX_B.stateChange = 0U;
10835
10836 /* During 'TwoLanes1': '<S327>:19' */
10837 if (L4_MABX_B.DataTypeConversion5_e3 < 18) {
10838 /* Transition: '<S327>:23' */
10839 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10840
10841 /* Entry 'init': '<S327>:1' */
10842 L4_MABX_B.stateChange = 0U;
10843 }
10844 break;
10845
10846 case L4_MABX_IN_ZeroLanes:
10847 /* During 'ZeroLanes': '<S327>:5' */
10848 /* Transition: '<S327>:16' */
10849 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes1;
10850
10851 /* Entry 'ZeroLanes1': '<S327>:15' */
10852 L4_MABX_B.stateChange = 0U;
10853 break;
10854
10855 case L4_MABX_IN_ZeroLanes1:
10856 L4_MABX_B.stateChange = 0U;
10857
10858 /* During 'ZeroLanes1': '<S327>:15' */
10859 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10860 /* Transition: '<S327>:17' */
10861 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_h;
10862
10863 /* Entry 'init': '<S327>:1' */
10864 L4_MABX_B.stateChange = 0U;
10865 }
10866 break;
10867
10868 default:
10869 L4_MABX_B.stateChange = 0U;
10870
10871 /* During 'init': '<S327>:1' */
10872 if (L4_MABX_B.DataTypeConversion5_e3 <= 3) {
10873 /* Transition: '<S327>:6' */
10874 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes;
10875
10876 /* Entry 'ZeroLanes': '<S327>:5' */
10877 L4_MABX_B.stateChange = 1U;
10878 } else if (L4_MABX_B.DataTypeConversion5_e3 > 18) {
10879 /* Transition: '<S327>:9' */
10880 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes;
10881
10882 /* Entry 'TwoLanes': '<S327>:8' */
10883 L4_MABX_B.stateChange = 1U;
10884 } else {
10885 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10886 /* Transition: '<S327>:10' */
10887 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane;
10888
10889 /* Entry 'OneLane': '<S327>:7' */
10890 L4_MABX_B.stateChange = 1U;
10891 }
10892 }
10893 break;
10894 }
10895 }
10896
10897 /* End of Chart: '<S277>/Chart' */
10898
10899 /* DataTypeConversion: '<S277>/Data Type Conversion' */
10900 L4_MABX_B.DataTypeConversion_l1 = (L4_MABX_B.stateChange != 0);
10901
10902 /* UnitDelay: '<S321>/Unit_Delay1' */
10903 L4_MABX_B.Unit_Delay1_jb = L4_MABX_DW.Unit_Delay1_DSTATE_db;
10904
10905 /* Logic: '<S321>/Logical Operator' incorporates:
10906 * Constant: '<S276>/zero'
10907 */
10908 L4_MABX_B.LogicalOperator_kh = (L4_MABX_P.zero_Value_g ||
10909 L4_MABX_B.Unit_Delay1_jb);
10910
10911 /* MinMax: '<S321>/MinMax1' incorporates:
10912 * Constant: '<S276>/timeConstant'
10913 * Constant: '<S276>/timeConstant1'
10914 */
10915 DeltaTime = L4_MABX_P.timeConstant1_Value;
10916 PositionFinalLimited = L4_MABX_P.timeConstant_Value;
10917 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10918 PositionFinalLimited = DeltaTime;
10919 }
10920
10921 L4_MABX_B.MinMax1_pr = PositionFinalLimited;
10922
10923 /* End of MinMax: '<S321>/MinMax1' */
10924
10925 /* Saturate: '<S321>/Saturation' */
10926 DeltaTime = L4_MABX_B.MinMax1_pr;
10927 Time56 = L4_MABX_P.Saturation_LowerSat_p2;
10928 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o1;
10929 if (DeltaTime > PositionFinalLimited) {
10930 L4_MABX_B.Saturation_ns = PositionFinalLimited;
10931 } else if (DeltaTime < Time56) {
10932 L4_MABX_B.Saturation_ns = Time56;
10933 } else {
10934 L4_MABX_B.Saturation_ns = DeltaTime;
10935 }
10936
10937 /* End of Saturate: '<S321>/Saturation' */
10938
10939 /* Product: '<S321>/Divide' incorporates:
10940 * Constant: '<S276>/timeConstant1'
10941 */
10942 L4_MABX_B.Divide_o = L4_MABX_P.timeConstant1_Value / L4_MABX_B.Saturation_ns;
10943
10944 /* Product: '<S321>/Product2' */
10945 L4_MABX_B.Product2_b = L4_MABX_B.SFunction1_o3_lm * L4_MABX_B.Divide_o;
10946
10947 /* Sum: '<S321>/Subtract1' incorporates:
10948 * Constant: '<S321>/Constant1'
10949 */
10950 L4_MABX_B.Subtract1_ei = L4_MABX_P.Constant1_Value_n - L4_MABX_B.Divide_o;
10951
10952 /* UnitDelay: '<S321>/Unit_Delay2' */
10953 L4_MABX_B.Unit_Delay2_k = L4_MABX_DW.Unit_Delay2_DSTATE_d;
10954
10955 /* Product: '<S321>/Product1' */
10956 L4_MABX_B.Product1_n = L4_MABX_B.Subtract1_ei * L4_MABX_B.Unit_Delay2_k;
10957
10958 /* Sum: '<S321>/Add1' */
10959 L4_MABX_B.Add1_k = L4_MABX_B.Product2_b + L4_MABX_B.Product1_n;
10960
10961 /* Outputs for Atomic SubSystem: '<S321>/If_Then_Else' */
10962 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_kh, L4_MABX_B.SFunction1_o3_lm,
10963 L4_MABX_B.Add1_k, &L4_MABX_B.If_Then_Else_b);
10964
10965 /* End of Outputs for SubSystem: '<S321>/If_Then_Else' */
10966
10967 /* Abs: '<S276>/Abs' */
10968 L4_MABX_B.Abs_ij = fabs(L4_MABX_B.SFunction1_o3_lm);
10969
10970 /* Sum: '<S276>/Add' */
10971 L4_MABX_B.Add_p = L4_MABX_B.Abs_ij - L4_MABX_B.If_Then_Else_b.Switch;
10972
10973 /* RelationalOperator: '<S276>/highRateOfChange' incorporates:
10974 * Constant: '<S276>/rateOfChangeThreshold'
10975 */
10976 L4_MABX_B.highRateOfChange = (L4_MABX_B.Add_p >
10977 L4_MABX_P.rateOfChangeThreshold_Value);
10978
10979 /* RelationalOperator: '<S276>/closeToEdge' incorporates:
10980 * Constant: '<S276>/closeToLaneEdgeThreshold'
10981 */
10982 L4_MABX_B.closeToEdge = (L4_MABX_B.Abs_ij >
10983 L4_MABX_P.closeToLaneEdgeThreshold_Value);
10984
10985 /* Logic: '<S276>/JumpNearEdge' */
10986 L4_MABX_B.JumpNearEdge = (L4_MABX_B.highRateOfChange && L4_MABX_B.closeToEdge);
10987
10988 /* UnitDelay: '<S320>/Delay Input1' */
10989 L4_MABX_B.Uk1_k2 = L4_MABX_DW.DelayInput1_DSTATE_f0;
10990
10991 /* RelationalOperator: '<S320>/FixPt Relational Operator' */
10992 L4_MABX_B.FixPtRelationalOperator_i = (L4_MABX_B.JumpNearEdge !=
10993 L4_MABX_B.Uk1_k2);
10994
10995 /* DataTypeConversion: '<S276>/Data Type Conversion' */
10996 L4_MABX_B.DataTypeConversion_dzv = L4_MABX_B.FixPtRelationalOperator_i;
10997
10998 /* UnitDelay: '<S322>/Unit_Delay1' */
10999 L4_MABX_B.Unit_Delay1_fe = L4_MABX_DW.Unit_Delay1_DSTATE_a;
11000
11001 /* Logic: '<S322>/Logical Operator' */
11002 L4_MABX_B.LogicalOperator_a = (L4_MABX_B.DataTypeConversion_dzv ||
11003 L4_MABX_B.Unit_Delay1_fe);
11004
11005 /* Switch: '<S276>/Switch' incorporates:
11006 * Constant: '<S276>/correction'
11007 * Constant: '<S276>/zero1'
11008 */
11009 if (L4_MABX_B.JumpNearEdge) {
11010 L4_MABX_B.Switch_g = L4_MABX_P.correction_Value;
11011 } else {
11012 L4_MABX_B.Switch_g = L4_MABX_P.zero1_Value;
11013 }
11014
11015 /* End of Switch: '<S276>/Switch' */
11016
11017 /* MinMax: '<S322>/MinMax1' incorporates:
11018 * Constant: '<S276>/timeConstant2'
11019 * Constant: '<S276>/timeConstant3'
11020 */
11021 DeltaTime = L4_MABX_P.timeConstant3_Value;
11022 PositionFinalLimited = L4_MABX_P.timeConstant2_Value;
11023 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11024 PositionFinalLimited = DeltaTime;
11025 }
11026
11027 L4_MABX_B.MinMax1_a = PositionFinalLimited;
11028
11029 /* End of MinMax: '<S322>/MinMax1' */
11030
11031 /* Saturate: '<S322>/Saturation' */
11032 DeltaTime = L4_MABX_B.MinMax1_a;
11033 Time56 = L4_MABX_P.Saturation_LowerSat_ph;
11034 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_d;
11035 if (DeltaTime > PositionFinalLimited) {
11036 L4_MABX_B.Saturation_e = PositionFinalLimited;
11037 } else if (DeltaTime < Time56) {
11038 L4_MABX_B.Saturation_e = Time56;
11039 } else {
11040 L4_MABX_B.Saturation_e = DeltaTime;
11041 }
11042
11043 /* End of Saturate: '<S322>/Saturation' */
11044
11045 /* Product: '<S322>/Divide' incorporates:
11046 * Constant: '<S276>/timeConstant3'
11047 */
11048 L4_MABX_B.Divide_d = L4_MABX_P.timeConstant3_Value / L4_MABX_B.Saturation_e;
11049
11050 /* Product: '<S322>/Product2' */
11051 L4_MABX_B.Product2_f = L4_MABX_B.Switch_g * L4_MABX_B.Divide_d;
11052
11053 /* Sum: '<S322>/Subtract1' incorporates:
11054 * Constant: '<S322>/Constant1'
11055 */
11056 L4_MABX_B.Subtract1_b = L4_MABX_P.Constant1_Value_j - L4_MABX_B.Divide_d;
11057
11058 /* UnitDelay: '<S322>/Unit_Delay2' */
11059 L4_MABX_B.Unit_Delay2_l = L4_MABX_DW.Unit_Delay2_DSTATE_im;
11060
11061 /* Product: '<S322>/Product1' */
11062 L4_MABX_B.Product1_c = L4_MABX_B.Subtract1_b * L4_MABX_B.Unit_Delay2_l;
11063
11064 /* Sum: '<S322>/Add1' */
11065 L4_MABX_B.Add1_p = L4_MABX_B.Product2_f + L4_MABX_B.Product1_c;
11066
11067 /* Outputs for Atomic SubSystem: '<S322>/If_Then_Else' */
11068
11069 /* Constant: '<S276>/zero2' */
11070 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_a, L4_MABX_P.zero2_Value,
11071 L4_MABX_B.Add1_p, &L4_MABX_B.If_Then_Else_mk);
11072
11073 /* End of Outputs for SubSystem: '<S322>/If_Then_Else' */
11074
11075 /* Signum: '<S276>/Sign' */
11076 PositionFinalLimited = L4_MABX_B.SFunction1_o3_lm;
11077 if (PositionFinalLimited < 0.0) {
11078 L4_MABX_B.Sign = -1.0;
11079 } else if (PositionFinalLimited > 0.0) {
11080 L4_MABX_B.Sign = 1.0;
11081 } else if (PositionFinalLimited == 0.0) {
11082 L4_MABX_B.Sign = 0.0;
11083 } else {
11084 L4_MABX_B.Sign = (rtNaN);
11085 }
11086
11087 /* End of Signum: '<S276>/Sign' */
11088
11089 /* Product: '<S276>/Product' */
11090 L4_MABX_B.Product_cf = L4_MABX_B.If_Then_Else_mk.Switch * L4_MABX_B.Sign;
11091
11092 /* UnitDelay: '<S323>/Unit_Delay1' */
11093 L4_MABX_B.Unit_Delay1_d = L4_MABX_DW.Unit_Delay1_DSTATE_p3;
11094
11095 /* Logic: '<S323>/Logical Operator' incorporates:
11096 * Constant: '<S276>/zero3'
11097 */
11098 L4_MABX_B.LogicalOperator_nz = (L4_MABX_P.zero3_Value ||
11099 L4_MABX_B.Unit_Delay1_d);
11100
11101 /* MinMax: '<S323>/MinMax1' incorporates:
11102 * Constant: '<S276>/timeConstant4'
11103 * Constant: '<S276>/timeConstant5'
11104 */
11105 DeltaTime = L4_MABX_P.timeConstant5_Value;
11106 PositionFinalLimited = L4_MABX_P.timeConstant4_Value;
11107 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11108 PositionFinalLimited = DeltaTime;
11109 }
11110
11111 L4_MABX_B.MinMax1_e = PositionFinalLimited;
11112
11113 /* End of MinMax: '<S323>/MinMax1' */
11114
11115 /* Saturate: '<S323>/Saturation' */
11116 DeltaTime = L4_MABX_B.MinMax1_e;
11117 Time56 = L4_MABX_P.Saturation_LowerSat_k;
11118 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_ok;
11119 if (DeltaTime > PositionFinalLimited) {
11120 L4_MABX_B.Saturation_o = PositionFinalLimited;
11121 } else if (DeltaTime < Time56) {
11122 L4_MABX_B.Saturation_o = Time56;
11123 } else {
11124 L4_MABX_B.Saturation_o = DeltaTime;
11125 }
11126
11127 /* End of Saturate: '<S323>/Saturation' */
11128
11129 /* Product: '<S323>/Divide' incorporates:
11130 * Constant: '<S276>/timeConstant5'
11131 */
11132 L4_MABX_B.Divide_j = L4_MABX_P.timeConstant5_Value / L4_MABX_B.Saturation_o;
11133
11134 /* Product: '<S323>/Product2' */
11135 L4_MABX_B.Product2_nk = L4_MABX_B.SFunction1_o3_lm * L4_MABX_B.Divide_j;
11136
11137 /* Sum: '<S323>/Subtract1' incorporates:
11138 * Constant: '<S323>/Constant1'
11139 */
11140 L4_MABX_B.Subtract1_eh = L4_MABX_P.Constant1_Value_oi - L4_MABX_B.Divide_j;
11141
11142 /* UnitDelay: '<S323>/Unit_Delay2' */
11143 L4_MABX_B.Unit_Delay2_c = L4_MABX_DW.Unit_Delay2_DSTATE_p;
11144
11145 /* Product: '<S323>/Product1' */
11146 L4_MABX_B.Product1_cc = L4_MABX_B.Subtract1_eh * L4_MABX_B.Unit_Delay2_c;
11147
11148 /* Sum: '<S323>/Add1' */
11149 L4_MABX_B.Add1_f1 = L4_MABX_B.Product2_nk + L4_MABX_B.Product1_cc;
11150
11151 /* Outputs for Atomic SubSystem: '<S323>/If_Then_Else' */
11152 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_nz, L4_MABX_B.SFunction1_o3_lm,
11153 L4_MABX_B.Add1_f1, &L4_MABX_B.If_Then_Else_lh);
11154
11155 /* End of Outputs for SubSystem: '<S323>/If_Then_Else' */
11156
11157 /* Switch: '<S276>/Switch1' */
11158 if (L4_MABX_B.JumpNearEdge) {
11159 L4_MABX_B.Switch1_f = L4_MABX_B.If_Then_Else_lh.Switch;
11160 } else {
11161 L4_MABX_B.Switch1_f = L4_MABX_B.SFunction1_o3_lm;
11162 }
11163
11164 /* End of Switch: '<S276>/Switch1' */
11165
11166 /* Sum: '<S276>/corrected Error' */
11167 L4_MABX_B.correctedError = L4_MABX_B.Product_cf + L4_MABX_B.Switch1_f;
11168
11169 /* RelationalOperator: '<S277>/Relational Operator' incorporates:
11170 * Constant: '<S277>/Constant'
11171 */
11172 L4_MABX_B.RelationalOperator_l5 = (L4_MABX_B.DataTypeConversion5_e3 >=
11173 L4_MABX_P.Constant_Value_mg);
11174
11175 /* Switch: '<S277>/Switch' incorporates:
11176 * Constant: '<S277>/Constant1'
11177 */
11178 if (L4_MABX_B.RelationalOperator_l5) {
11179 L4_MABX_B.Switch_h = L4_MABX_B.correctedError;
11180 } else {
11181 L4_MABX_B.Switch_h = L4_MABX_P.Constant1_Value_l;
11182 }
11183
11184 /* End of Switch: '<S277>/Switch' */
11185
11186 /* Outputs for Enabled SubSystem: '<S277>/Slew_at_event' incorporates:
11187 * EnablePort: '<S328>/Enable'
11188 */
11189 /* Constant: '<S277>/enable' */
11190 if (L4_MABX_P.enable_Value > 0.0) {
11191 if (!L4_MABX_DW.Slew_at_event_MODE_d) {
11192 /* InitializeConditions for UnitDelay: '<S330>/Unit_Delay' */
11193 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
11194
11195 /* InitializeConditions for UnitDelay: '<S331>/Unit_Delay' */
11196 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
11197
11198 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay2' */
11199 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
11200 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
11201
11202 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay1' */
11203 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ov =
11204 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
11205
11206 /* InitializeConditions for UnitDelay: '<S329>/Unit_Delay' */
11207 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
11208 L4_MABX_DW.Slew_at_event_MODE_d = true;
11209 }
11210
11211 /* UnitDelay: '<S330>/Unit_Delay' */
11212 L4_MABX_B.Unit_Delay_o3 = L4_MABX_DW.Unit_Delay_DSTATE_bd;
11213
11214 /* Logic: '<S330>/Logical Operator1' */
11215 L4_MABX_B.LogicalOperator1_gw = !L4_MABX_B.Unit_Delay_o3;
11216
11217 /* Logic: '<S330>/Logical Operator' */
11218 L4_MABX_B.LogicalOperator_d2 = (L4_MABX_B.DataTypeConversion_l1 &&
11219 L4_MABX_B.LogicalOperator1_gw);
11220
11221 /* UnitDelay: '<S331>/Unit_Delay' */
11222 L4_MABX_B.Unit_Delay_hj = L4_MABX_DW.Unit_Delay_DSTATE_jt;
11223
11224 /* Logic: '<S331>/Logical Operator1' */
11225 L4_MABX_B.LogicalOperator1_h = (L4_MABX_B.LogicalOperator_d2 ||
11226 L4_MABX_B.Unit_Delay_hj);
11227
11228 /* UnitDelay: '<S334>/FixPt Unit Delay2' */
11229 L4_MABX_B.FixPtUnitDelay2_h5 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_j;
11230
11231 /* UnitDelay: '<S334>/FixPt Unit Delay1' */
11232 L4_MABX_B.Xold_g = L4_MABX_DW.FixPtUnitDelay1_DSTATE_ov;
11233
11234 /* Switch: '<S334>/Init' */
11235 if (L4_MABX_B.FixPtUnitDelay2_h5 != 0) {
11236 L4_MABX_B.Init_j = L4_MABX_B.Switch_h;
11237 } else {
11238 L4_MABX_B.Init_j = L4_MABX_B.Xold_g;
11239 }
11240
11241 /* End of Switch: '<S334>/Init' */
11242
11243 /* Abs: '<S331>/Abs' incorporates:
11244 * Constant: '<S277>/Constant3'
11245 */
11246 L4_MABX_B.Abs_a = fabs(L4_MABX_P.Constant3_Value_j);
11247
11248 /* Product: '<S331>/Product1' incorporates:
11249 * Constant: '<S277>/Constant2'
11250 */
11251 L4_MABX_B.Product1_i3 = L4_MABX_B.Abs_a * L4_MABX_P.Constant2_Value_p;
11252
11253 /* Sum: '<S331>/Add1' */
11254 L4_MABX_B.Add1_b0 = L4_MABX_B.Init_j + L4_MABX_B.Product1_i3;
11255
11256 /* MinMax: '<S331>/MinMax2' */
11257 DeltaTime = L4_MABX_B.Switch_h;
11258 PositionFinalLimited = L4_MABX_B.Add1_b0;
11259 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11260 PositionFinalLimited = DeltaTime;
11261 }
11262
11263 L4_MABX_B.MinMax2_l = PositionFinalLimited;
11264
11265 /* End of MinMax: '<S331>/MinMax2' */
11266
11267 /* Abs: '<S331>/Abs1' incorporates:
11268 * Constant: '<S277>/Constant4'
11269 */
11270 L4_MABX_B.Abs1_e = fabs(L4_MABX_P.Constant4_Value_bq);
11271
11272 /* Product: '<S331>/Product2' incorporates:
11273 * Constant: '<S277>/Constant2'
11274 */
11275 L4_MABX_B.Product2_k = L4_MABX_P.Constant2_Value_p * L4_MABX_B.Abs1_e;
11276
11277 /* Sum: '<S331>/Subtract1' */
11278 L4_MABX_B.Subtract1_gl = L4_MABX_B.Init_j - L4_MABX_B.Product2_k;
11279
11280 /* MinMax: '<S331>/MinMax1' */
11281 DeltaTime = L4_MABX_B.MinMax2_l;
11282 PositionFinalLimited = L4_MABX_B.Subtract1_gl;
11283 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11284 PositionFinalLimited = DeltaTime;
11285 }
11286
11287 L4_MABX_B.MinMax1_k = PositionFinalLimited;
11288
11289 /* End of MinMax: '<S331>/MinMax1' */
11290
11291 /* Outputs for Atomic SubSystem: '<S331>/If_Then_Else' */
11292 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_h, L4_MABX_B.Switch_h,
11293 L4_MABX_B.MinMax1_k, &L4_MABX_B.If_Then_Else_n3);
11294
11295 /* End of Outputs for SubSystem: '<S331>/If_Then_Else' */
11296
11297 /* Sum: '<S328>/Subtract' */
11298 L4_MABX_B.Subtract_ij = L4_MABX_B.Switch_h -
11299 L4_MABX_B.If_Then_Else_n3.Switch;
11300
11301 /* Abs: '<S328>/Abs' */
11302 L4_MABX_B.Abs_eu = fabs(L4_MABX_B.Subtract_ij);
11303
11304 /* RelationalOperator: '<S328>/Relational Operator1' incorporates:
11305 * Constant: '<S328>/Constant1'
11306 */
11307 L4_MABX_B.RelationalOperator1_et = (L4_MABX_B.Abs_eu <=
11308 L4_MABX_P.Constant1_Value_ah);
11309
11310 /* Logic: '<S329>/Logical Operator3' */
11311 L4_MABX_B.LogicalOperator3_ar = !L4_MABX_B.RelationalOperator1_et;
11312
11313 /* UnitDelay: '<S329>/Unit_Delay' */
11314 L4_MABX_B.Unit_Delay_ig = L4_MABX_DW.Unit_Delay_DSTATE_ll;
11315
11316 /* Logic: '<S329>/Logical Operator1' */
11317 L4_MABX_B.LogicalOperator1_jo = (L4_MABX_B.DataTypeConversion_l1 ||
11318 L4_MABX_B.Unit_Delay_ig);
11319
11320 /* Logic: '<S329>/Logical Operator' */
11321 L4_MABX_B.LogicalOperator_dm = (L4_MABX_B.LogicalOperator3_ar &&
11322 L4_MABX_B.LogicalOperator1_jo);
11323
11324 /* Logic: '<S329>/Logical Operator2' */
11325 L4_MABX_B.LogicalOperator2_j = !L4_MABX_B.LogicalOperator_dm;
11326
11327 /* RelationalOperator: '<S332>/min_relop' incorporates:
11328 * Constant: '<S277>/Constant3'
11329 * Constant: '<S332>/min_val'
11330 */
11331 L4_MABX_B.min_relop_d = (L4_MABX_P.CheckStaticLowerBound_min_n <=
11332 L4_MABX_P.Constant3_Value_j);
11333
11334 /* Assertion: '<S332>/Assertion' */
11335 utAssert(L4_MABX_B.min_relop_d);
11336 } else {
11337 if (L4_MABX_DW.Slew_at_event_MODE_d) {
11338 /* Disable for Outport: '<S328>/F_Out_slewing' */
11339 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
11340
11341 /* Disable for Outport: '<S328>/Out' */
11342 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
11343 L4_MABX_DW.Slew_at_event_MODE_d = false;
11344 }
11345 }
11346
11347 /* End of Constant: '<S277>/enable' */
11348 /* End of Outputs for SubSystem: '<S277>/Slew_at_event' */
11349
11350 /* Switch: '<S277>/Switch1' incorporates:
11351 * Constant: '<S277>/enableSlew'
11352 */
11353 if (L4_MABX_P.enableSlew_Value != 0.0) {
11354 L4_MABX_B.Switch1_j = L4_MABX_B.If_Then_Else_n3.Switch;
11355 } else {
11356 L4_MABX_B.Switch1_j = L4_MABX_B.Switch_h;
11357 }
11358
11359 /* End of Switch: '<S277>/Switch1' */
11360
11361 /* Gain: '<S80>/sign' */
11362 L4_MABX_B.SteerCtrlErrRaw = L4_MABX_P.sign_Gain * L4_MABX_B.Switch1_j;
11363
11364 /* DataTypeConversion: '<S80>/Data Type Conversion1' */
11365 L4_MABX_B.DataTypeConversion1_ev = L4_MABX_B.SteerCtrlErrRaw;
11366
11367 /* UnitDelay: '<S279>/Unit Delay' */
11368 L4_MABX_B.UnitDelay_fm = L4_MABX_DW.UnitDelay_DSTATE_d;
11369
11370 /* Switch: '<S283>/Switch1' incorporates:
11371 * Constant: '<S279>/E'
11372 * Constant: '<S279>/R'
11373 * Switch: '<S281>/Switch1'
11374 */
11375 if (L4_MABX_P.R_Value) {
11376 /* DataTypeConversion: '<S279>/Data Type Conversion1' incorporates:
11377 * Constant: '<S279>/IV'
11378 */
11379 L4_MABX_B.DataTypeConversion1_b1 = (real32_T)L4_MABX_P.IV_Value;
11380 L4_MABX_B.Switch1_fi = L4_MABX_B.DataTypeConversion1_b1;
11381 } else {
11382 if (L4_MABX_P.E_Value_j) {
11383 /* DataTypeConversion: '<S279>/Data Type Conversion' incorporates:
11384 * Switch: '<S281>/Switch1'
11385 */
11386 L4_MABX_B.DataTypeConversion_ps = (real32_T)
11387 L4_MABX_B.DataTypeConversion1_ev;
11388
11389 /* Sum: '<S279>/Add3' incorporates:
11390 * Switch: '<S281>/Switch1'
11391 */
11392 L4_MABX_B.Add3_j = L4_MABX_B.DataTypeConversion_ps -
11393 L4_MABX_B.UnitDelay_fm;
11394
11395 /* Product: '<S279>/Product1' incorporates:
11396 * Switch: '<S281>/Switch1'
11397 */
11398 L4_MABX_B.Product1_n2 = L4_MABX_B.Divide_nn * L4_MABX_B.Add3_j;
11399
11400 /* Sum: '<S279>/Add' incorporates:
11401 * Switch: '<S281>/Switch1'
11402 */
11403 L4_MABX_B.Add_f = L4_MABX_B.Product1_n2 + L4_MABX_B.UnitDelay_fm;
11404
11405 /* Switch: '<S281>/Switch1' */
11406 L4_MABX_B.Switch1_cw = L4_MABX_B.Add_f;
11407 } else {
11408 /* Switch: '<S281>/Switch1' */
11409 L4_MABX_B.Switch1_cw = L4_MABX_B.UnitDelay_fm;
11410 }
11411
11412 L4_MABX_B.Switch1_fi = L4_MABX_B.Switch1_cw;
11413 }
11414
11415 /* End of Switch: '<S283>/Switch1' */
11416
11417 /* DataTypeConversion: '<S280>/Conversion' */
11418 L4_MABX_B.Conversion = L4_MABX_B.Switch1_fi;
11419
11420 /* Abs: '<S80>/Abs' */
11421 L4_MABX_B.Abs_d = fabs(L4_MABX_B.Conversion);
11422
11423 /* Lookup_n-D: '<S80>/SteeringControlPGainErrorBased' */
11424 L4_MABX_B.SteeringControlPGainErrorBased = look1_binlxpw(L4_MABX_B.Abs_d,
11425 L4_MABX_P.SteeringControlPGainErrorBase_n,
11426 L4_MABX_P.SteeringControlPGainErrorBased_, 9U);
11427
11428 /* DataTypeConversion: '<S80>/Data Type Conversion' */
11429 L4_MABX_B.DataTypeConversion_ku = L4_MABX_B.SFunction1_o1_h54;
11430
11431 /* Lookup_n-D: '<S80>/SteeringControlPGainSpeedFactor' */
11432 L4_MABX_B.SteeringControlPGainSpeedFactor = look1_binlxpw
11433 (L4_MABX_B.DataTypeConversion_ku, L4_MABX_P.SteeringControlPGainSpeedFact_i,
11434 L4_MABX_P.SteeringControlPGainSpeedFactor, 8U);
11435
11436 /* Product: '<S80>/Product1' */
11437 L4_MABX_B.SteerCtrlPgain = L4_MABX_B.SteeringControlPGainErrorBased *
11438 L4_MABX_B.SteeringControlPGainSpeedFactor;
11439
11440 /* Gain: '<S80>/Gain' */
11441 L4_MABX_B.Gain_cd = L4_MABX_P.Gain_Gain_m * L4_MABX_B.SteerCtrlPgain;
11442
11443 /* Product: '<S290>/Product' */
11444 L4_MABX_B.Product_d = L4_MABX_B.Conversion * L4_MABX_B.Gain_cd;
11445
11446 /* Product: '<S290>/Divide' incorporates:
11447 * Constant: '<S273>/Constant21'
11448 * Constant: '<S273>/SteeringControlIntGain'
11449 */
11450 L4_MABX_B.Divide_ag = L4_MABX_P.Constant21_Value /
11451 L4_MABX_P.SteeringControlIntGain_Value;
11452
11453 /* Product: '<S290>/Product1' */
11454 L4_MABX_B.Product1_hr = L4_MABX_B.Product_d * L4_MABX_B.Divide_ag;
11455
11456 /* UnitDelay: '<S289>/Unit Delay' */
11457 L4_MABX_B.UnitDelay_m = L4_MABX_DW.UnitDelay_DSTATE_m;
11458
11459 /* RelationalOperator: '<S289>/Relational Operator' incorporates:
11460 * Constant: '<S273>/Constant19'
11461 */
11462 L4_MABX_B.RelationalOperator_d = (L4_MABX_B.UnitDelay_m >=
11463 L4_MABX_P.Constant19_Value);
11464
11465 /* Switch: '<S289>/Switch' incorporates:
11466 * Constant: '<S289>/Constant3'
11467 */
11468 if (L4_MABX_B.RelationalOperator_d) {
11469 L4_MABX_B.Switch_o = L4_MABX_P.Constant3_Value_pw;
11470 } else {
11471 /* RelationalOperator: '<S289>/Relational Operator1' incorporates:
11472 * Constant: '<S273>/Constant20'
11473 */
11474 L4_MABX_B.RelationalOperator1_m = (L4_MABX_B.UnitDelay_m <=
11475 L4_MABX_P.Constant20_Value);
11476
11477 /* Switch: '<S289>/Switch1' incorporates:
11478 * Constant: '<S289>/Constant'
11479 * Constant: '<S289>/Constant2'
11480 */
11481 if (L4_MABX_B.RelationalOperator1_m) {
11482 L4_MABX_B.Switch1_m = L4_MABX_P.Constant2_Value_hu;
11483 } else {
11484 L4_MABX_B.Switch1_m = L4_MABX_P.Constant_Value_i;
11485 }
11486
11487 /* End of Switch: '<S289>/Switch1' */
11488 L4_MABX_B.Switch_o = L4_MABX_B.Switch1_m;
11489 }
11490
11491 /* End of Switch: '<S289>/Switch' */
11492
11493 /* RelationalOperator: '<S292>/Relational Operator5' incorporates:
11494 * Constant: '<S292>/Constant5'
11495 */
11496 L4_MABX_B.RelationalOperator5_f = (L4_MABX_B.Switch_o !=
11497 L4_MABX_P.Constant5_Value_o);
11498
11499 /* Signum: '<S292>/Sign1' */
11500 PositionFinalLimited = L4_MABX_B.Product1_hr;
11501 if (PositionFinalLimited < 0.0) {
11502 L4_MABX_B.Sign1 = -1.0;
11503 } else if (PositionFinalLimited > 0.0) {
11504 L4_MABX_B.Sign1 = 1.0;
11505 } else if (PositionFinalLimited == 0.0) {
11506 L4_MABX_B.Sign1 = 0.0;
11507 } else {
11508 L4_MABX_B.Sign1 = (rtNaN);
11509 }
11510
11511 /* End of Signum: '<S292>/Sign1' */
11512
11513 /* RelationalOperator: '<S292>/Relational Operator4' incorporates:
11514 * Constant: '<S292>/Constant4'
11515 */
11516 L4_MABX_B.RelationalOperator4_la = (L4_MABX_P.Constant4_Value_j ==
11517 L4_MABX_B.Sign1);
11518
11519 /* RelationalOperator: '<S292>/Relational Operator2' incorporates:
11520 * Constant: '<S292>/Constant2'
11521 */
11522 L4_MABX_B.RelationalOperator2_o = (L4_MABX_B.Switch_o !=
11523 L4_MABX_P.Constant2_Value_g);
11524
11525 /* Logic: '<S292>/Logical Operator1' */
11526 L4_MABX_B.LogicalOperator1_ji = (L4_MABX_B.RelationalOperator4_la &&
11527 L4_MABX_B.RelationalOperator2_o);
11528
11529 /* RelationalOperator: '<S292>/Relational Operator1' incorporates:
11530 * Constant: '<S292>/Constant1'
11531 */
11532 L4_MABX_B.RelationalOperator1_ie = (L4_MABX_B.Switch_o !=
11533 L4_MABX_P.Constant1_Value_ly);
11534
11535 /* RelationalOperator: '<S292>/Relational Operator3' incorporates:
11536 * Constant: '<S292>/Constant3'
11537 */
11538 L4_MABX_B.RelationalOperator3_p = (L4_MABX_P.Constant3_Value_g ==
11539 L4_MABX_B.Sign1);
11540
11541 /* Logic: '<S292>/Logical Operator2' */
11542 L4_MABX_B.LogicalOperator2_o = (L4_MABX_B.RelationalOperator1_ie &&
11543 L4_MABX_B.RelationalOperator3_p);
11544
11545 /* Logic: '<S292>/Logical Operator' */
11546 L4_MABX_B.LogicalOperator_bs = (L4_MABX_B.LogicalOperator1_ji ||
11547 L4_MABX_B.LogicalOperator2_o);
11548
11549 /* Logic: '<S292>/Logical Operator3' */
11550 L4_MABX_B.LogicalOperator3_oi = (L4_MABX_B.RelationalOperator5_f &&
11551 L4_MABX_B.LogicalOperator_bs);
11552
11553 /* Switch: '<S292>/Switch1' incorporates:
11554 * Constant: '<S292>/Constant'
11555 */
11556 if (L4_MABX_B.LogicalOperator3_oi) {
11557 L4_MABX_B.Switch1_jw = L4_MABX_B.Product1_hr;
11558 } else {
11559 L4_MABX_B.Switch1_jw = L4_MABX_P.Constant_Value_o;
11560 }
11561
11562 /* End of Switch: '<S292>/Switch1' */
11563
11564 /* UnitDelay: '<S290>/Unit Delay' */
11565 L4_MABX_B.UnitDelay_o = L4_MABX_DW.UnitDelay_DSTATE_m0;
11566
11567 /* Sum: '<S290>/Add' */
11568 L4_MABX_B.Add_px = L4_MABX_B.Switch1_jw + L4_MABX_B.UnitDelay_o;
11569
11570 /* Product: '<S290>/Divide1' incorporates:
11571 * Constant: '<S273>/Constant21'
11572 * Constant: '<S273>/SteeringControlDGain'
11573 */
11574 L4_MABX_B.Divide1_b = L4_MABX_P.SteeringControlDGain_Value *
11575 L4_MABX_B.Product_d / L4_MABX_P.Constant21_Value;
11576
11577 /* UnitDelay: '<S290>/Unit Delay1' */
11578 L4_MABX_B.UnitDelay1_e = L4_MABX_DW.UnitDelay1_DSTATE_k;
11579
11580 /* Sum: '<S290>/Add3' */
11581 L4_MABX_B.Add3 = L4_MABX_B.Divide1_b - L4_MABX_B.UnitDelay1_e;
11582
11583 /* Sum: '<S290>/Add1' */
11584 L4_MABX_B.Add1_m = (L4_MABX_B.Product_d + L4_MABX_B.Add_px) + L4_MABX_B.Add3;
11585
11586 /* RelationalOperator: '<S291>/LowerRelop1' incorporates:
11587 * Constant: '<S273>/Constant19'
11588 */
11589 L4_MABX_B.LowerRelop1 = (L4_MABX_B.Add1_m > L4_MABX_P.Constant19_Value);
11590
11591 /* RelationalOperator: '<S291>/UpperRelop' incorporates:
11592 * Constant: '<S273>/Constant20'
11593 */
11594 L4_MABX_B.UpperRelop = (L4_MABX_B.Add1_m < L4_MABX_P.Constant20_Value);
11595
11596 /* Switch: '<S291>/Switch' incorporates:
11597 * Constant: '<S273>/Constant20'
11598 */
11599 if (L4_MABX_B.UpperRelop) {
11600 L4_MABX_B.Switch_p = L4_MABX_P.Constant20_Value;
11601 } else {
11602 L4_MABX_B.Switch_p = L4_MABX_B.Add1_m;
11603 }
11604
11605 /* End of Switch: '<S291>/Switch' */
11606
11607 /* Switch: '<S291>/Switch2' incorporates:
11608 * Constant: '<S273>/Constant19'
11609 */
11610 if (L4_MABX_B.LowerRelop1) {
11611 L4_MABX_B.Switch2_i = L4_MABX_P.Constant19_Value;
11612 } else {
11613 L4_MABX_B.Switch2_i = L4_MABX_B.Switch_p;
11614 }
11615
11616 /* End of Switch: '<S291>/Switch2' */
11617
11618 /* RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
11619 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11620 L4_MABX_B.previewSteeringAngle_b =
11621 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0;
11622 }
11623
11624 /* Gain: '<S80>/rad2deg1' */
11625 L4_MABX_B.rad2deg1 = L4_MABX_P.rad2deg1_Gain *
11626 L4_MABX_B.previewSteeringAngle_b;
11627
11628 /* Sum: '<S80>/Add2' incorporates:
11629 * Constant: '<S80>/steeringOffset'
11630 */
11631 L4_MABX_B.Add2 = (L4_MABX_B.rad2deg1 + L4_MABX_B.Switch2_i) +
11632 L4_MABX_P.steeringOffset_Value;
11633
11634 /* Lookup_n-D: '<S278>/1-D Lookup Table' */
11635 L4_MABX_B.uDLookupTable_a = look1_binlxpw(L4_MABX_B.DataTypeConversion_ku,
11636 L4_MABX_P.uDLookupTable_bp01Data_kj, L4_MABX_P.uDLookupTable_tableData_b, 8U);
11637
11638 /* Product: '<S278>/AdjustedStanleyGain' incorporates:
11639 * Constant: '<S278>/stanleySteeringControlGain'
11640 */
11641 L4_MABX_B.AdjustedStanleyGain = L4_MABX_B.uDLookupTable_a *
11642 L4_MABX_P.stanleySteeringControlGain_Valu;
11643
11644 /* Step: '<S272>/Step' */
11645 PositionFinalLimited = L4_MABX_M->Timing.t[0];
11646 if (PositionFinalLimited < L4_MABX_P.Step_Time) {
11647 L4_MABX_B.Step = L4_MABX_P.Step_Y0;
11648 } else {
11649 L4_MABX_B.Step = L4_MABX_P.Step_YFinal;
11650 }
11651
11652 /* End of Step: '<S272>/Step' */
11653
11654 /* DataTypeConversion: '<S272>/Data Type Conversion' */
11655 L4_MABX_B.DataTypeConversion_dn = (L4_MABX_B.Step != 0.0);
11656
11657 /* Product: '<S284>/Divide' incorporates:
11658 * Constant: '<S272>/Constant'
11659 * Constant: '<S272>/Constant1'
11660 */
11661 L4_MABX_B.Divide_d0 = (real32_T)(L4_MABX_P.Constant1_Value_iy /
11662 L4_MABX_P.Constant_Value_d);
11663
11664 /* RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
11665 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11666 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
11667 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_;
11668 }
11669
11670 /* Gain: '<S80>/signCurveOffset' */
11671 L4_MABX_B.signCurveOffset = L4_MABX_P.signCurveOffset_Gain *
11672 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1;
11673
11674 /* UnitDelay: '<S284>/Unit Delay' */
11675 L4_MABX_B.UnitDelay_lj = L4_MABX_DW.UnitDelay_DSTATE_m1;
11676
11677 /* Switch: '<S288>/Switch1' incorporates:
11678 * Constant: '<S284>/E'
11679 * Switch: '<S286>/Switch1'
11680 */
11681 if (L4_MABX_B.DataTypeConversion_dn) {
11682 /* DataTypeConversion: '<S284>/Data Type Conversion1' incorporates:
11683 * Constant: '<S284>/IV'
11684 */
11685 L4_MABX_B.DataTypeConversion1_gp = (real32_T)L4_MABX_P.IV_Value_o;
11686 L4_MABX_B.Switch1_pb = L4_MABX_B.DataTypeConversion1_gp;
11687 } else {
11688 if (L4_MABX_P.E_Value_ct) {
11689 /* DataTypeConversion: '<S284>/Data Type Conversion' incorporates:
11690 * Switch: '<S286>/Switch1'
11691 */
11692 L4_MABX_B.DataTypeConversion_mv = (real32_T)L4_MABX_B.signCurveOffset;
11693
11694 /* Sum: '<S284>/Add3' incorporates:
11695 * Switch: '<S286>/Switch1'
11696 */
11697 L4_MABX_B.Add3_p = L4_MABX_B.DataTypeConversion_mv -
11698 L4_MABX_B.UnitDelay_lj;
11699
11700 /* Product: '<S284>/Product1' incorporates:
11701 * Switch: '<S286>/Switch1'
11702 */
11703 L4_MABX_B.Product1_ce = L4_MABX_B.Divide_d0 * L4_MABX_B.Add3_p;
11704
11705 /* Sum: '<S284>/Add' incorporates:
11706 * Switch: '<S286>/Switch1'
11707 */
11708 L4_MABX_B.Add_a = L4_MABX_B.Product1_ce + L4_MABX_B.UnitDelay_lj;
11709
11710 /* Switch: '<S286>/Switch1' */
11711 L4_MABX_B.Switch1_aq = L4_MABX_B.Add_a;
11712 } else {
11713 /* Switch: '<S286>/Switch1' */
11714 L4_MABX_B.Switch1_aq = L4_MABX_B.UnitDelay_lj;
11715 }
11716
11717 L4_MABX_B.Switch1_pb = L4_MABX_B.Switch1_aq;
11718 }
11719
11720 /* End of Switch: '<S288>/Switch1' */
11721
11722 /* DataTypeConversion: '<S285>/Conversion' */
11723 L4_MABX_B.Conversion_b = L4_MABX_B.Switch1_pb;
11724
11725 /* Gain: '<S80>/mm2m' */
11726 L4_MABX_B.mm2m = L4_MABX_P.mm2m_Gain * L4_MABX_B.correctedError;
11727
11728 /* Switch: '<S80>/Switch3' incorporates:
11729 * Constant: '<S80>/usePIDyForStanley'
11730 */
11731 if (L4_MABX_P.usePIDyForStanley_Value != 0.0) {
11732 L4_MABX_B.Switch3 = L4_MABX_B.Switch2_i;
11733 } else {
11734 L4_MABX_B.Switch3 = L4_MABX_B.mm2m;
11735 }
11736
11737 /* End of Switch: '<S80>/Switch3' */
11738
11739 /* Gain: '<S80>/sign3' */
11740 L4_MABX_B.sign3 = L4_MABX_P.sign3_Gain * L4_MABX_B.Switch3;
11741
11742 /* Sum: '<S80>/crossTrackError' */
11743 L4_MABX_B.crossTrackError = L4_MABX_B.Conversion_b + L4_MABX_B.sign3;
11744
11745 /* Product: '<S278>/Product' */
11746 L4_MABX_B.Product_p = L4_MABX_B.AdjustedStanleyGain *
11747 L4_MABX_B.crossTrackError;
11748
11749 /* Saturate: '<S278>/Saturation' */
11750 DeltaTime = L4_MABX_B.DataTypeConversion_ku;
11751 Time56 = L4_MABX_P.Saturation_LowerSat_bq;
11752 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_e;
11753 if (DeltaTime > PositionFinalLimited) {
11754 L4_MABX_B.Saturation_a = PositionFinalLimited;
11755 } else if (DeltaTime < Time56) {
11756 L4_MABX_B.Saturation_a = Time56;
11757 } else {
11758 L4_MABX_B.Saturation_a = DeltaTime;
11759 }
11760
11761 /* End of Saturate: '<S278>/Saturation' */
11762
11763 /* Gain: '<S278>/kph2mps_' */
11764 L4_MABX_B.kph2mps_ = L4_MABX_P.kph2mps_Gain * L4_MABX_B.Saturation_a;
11765
11766 /* Trigonometry: '<S278>/Trigonometric Function' */
11767 L4_MABX_B.TrigonometricFunction_p = rt_atan2d_snf(L4_MABX_B.Product_p,
11768 L4_MABX_B.kph2mps_);
11769
11770 /* Gain: '<S80>/deg2rad1' */
11771 L4_MABX_B.deg2rad1 = L4_MABX_P.deg2rad1_Gain * L4_MABX_B.uDLookupTable1;
11772
11773 /* RateTransition: '<S278>/TmpRTBAtAdd2Inport2' */
11774 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11775 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0;
11776 }
11777
11778 /* Sum: '<S278>/Add2' */
11779 L4_MABX_B.Add2_g = L4_MABX_B.deg2rad1 - L4_MABX_B.TmpRTBAtAdd2Inport2;
11780
11781 /* Gain: '<S278>/desHeadingWeight' */
11782 L4_MABX_B.desHeadingWeight = L4_MABX_P.desHeadingWeight_Gain *
11783 L4_MABX_B.Add2_g;
11784
11785 /* Sum: '<S278>/Add1' */
11786 L4_MABX_B.Add1_h = L4_MABX_B.TrigonometricFunction_p +
11787 L4_MABX_B.desHeadingWeight;
11788
11789 /* DataTypeConversion: '<S304>/Data Type Conversion' incorporates:
11790 * Constant: '<S304>/RATE_LIMITER_ENABLE_APV'
11791 */
11792 L4_MABX_B.DataTypeConversion_l = (real_T)RATE_LIMITER_ENABLE_APV;
11793
11794 /* Lookup_n-D: '<S304>/Saturation Speed Lookup' */
11795 L4_MABX_B.SaturationSpeedLookup = look1_binlcapw
11796 (L4_MABX_B.DataTypeConversion_ku, L4_MABX_P.SaturationSpeedLookup_bp01Data,
11797 L4_MABX_P.SaturationSpeedLookup_tableData, 5U);
11798
11799 /* Constant: '<S304>/Constant' */
11800 Lateral_Control_Rate_Limit = Lateral_Control_Rate_Limit_APV;
11801
11802 /* SampleTimeMath: '<S315>/sample time'
11803 *
11804 * About '<S315>/sample time':
11805 * y = K where K = ( w * Ts )
11806 */
11807 L4_MABX_B.sampletime = L4_MABX_P.sampletime_WtEt;
11808
11809 /* Product: '<S315>/delta rise limit' */
11810 L4_MABX_B.deltariselimit = Lateral_Control_Rate_Limit * L4_MABX_B.sampletime;
11811
11812 /* SampleTimeMath: '<S302>/sample time'
11813 *
11814 * About '<S302>/sample time':
11815 * y = K where K = ( w * Ts )
11816 */
11817 L4_MABX_B.sampletime_c = L4_MABX_P.sampletime_WtEt_j;
11818
11819 /* Product: '<S302>/delta rise limit' incorporates:
11820 * Constant: '<S275>/Constant7'
11821 */
11822 L4_MABX_B.deltariselimit_c = Lateral_Control_Error_Rate_Limit *
11823 L4_MABX_B.sampletime_c;
11824
11825 /* MATLAB Function: '<S275>/Error Calc' */
11826 /* MATLAB Function 'STEERCTRL_10ms/SteerController/Error Calc': '<S297>:1' */
11827 /* '<S297>:1:3' */
11828 Lateral_Control_Heading_Error = TargetAzimuth_rad - CurrentAzimuth_rad;
11829 if (Lateral_Control_Heading_Error < -3.1415926535897931) {
11830 /* '<S297>:1:5' */
11831 /* '<S297>:1:6' */
11832 Lateral_Control_Heading_Error += 6.2831853071795862;
11833 } else {
11834 if (Lateral_Control_Heading_Error > 3.1415926535897931) {
11835 /* '<S297>:1:7' */
11836 /* '<S297>:1:8' */
11837 Lateral_Control_Heading_Error -= 6.2831853071795862;
11838 }
11839 }
11840
11841 /* End of MATLAB Function: '<S275>/Error Calc' */
11842
11843 /* UnitDelay: '<S302>/Delay Input2' */
11844 L4_MABX_B.Yk1 = L4_MABX_DW.DelayInput2_DSTATE;
11845
11846 /* Sum: '<S302>/Difference Inputs1' */
11847 L4_MABX_B.UkYk1 = Lateral_Control_Heading_Error - L4_MABX_B.Yk1;
11848
11849 /* RelationalOperator: '<S311>/LowerRelop1' */
11850 L4_MABX_B.LowerRelop1_h = (L4_MABX_B.UkYk1 > L4_MABX_B.deltariselimit_c);
11851
11852 /* Product: '<S302>/delta fall limit' incorporates:
11853 * Constant: '<S275>/Constant8'
11854 */
11855 PositionFinalLimited = -Lateral_Control_Error_Rate_Limit;
11856 L4_MABX_B.deltafalllimit = PositionFinalLimited * L4_MABX_B.sampletime_c;
11857
11858 /* RelationalOperator: '<S311>/UpperRelop' */
11859 L4_MABX_B.UpperRelop_f = (L4_MABX_B.UkYk1 < L4_MABX_B.deltafalllimit);
11860
11861 /* Switch: '<S311>/Switch' */
11862 if (L4_MABX_B.UpperRelop_f) {
11863 L4_MABX_B.Switch_i = L4_MABX_B.deltafalllimit;
11864 } else {
11865 L4_MABX_B.Switch_i = L4_MABX_B.UkYk1;
11866 }
11867
11868 /* End of Switch: '<S311>/Switch' */
11869
11870 /* Switch: '<S311>/Switch2' */
11871 if (L4_MABX_B.LowerRelop1_h) {
11872 L4_MABX_B.Switch2_f = L4_MABX_B.deltariselimit_c;
11873 } else {
11874 L4_MABX_B.Switch2_f = L4_MABX_B.Switch_i;
11875 }
11876
11877 /* End of Switch: '<S311>/Switch2' */
11878
11879 /* Sum: '<S302>/Difference Inputs2' */
11880 L4_MABX_B.DifferenceInputs2 = L4_MABX_B.Switch2_f + L4_MABX_B.Yk1;
11881
11882 /* RelationalOperator: '<S298>/Relational Operator1' incorporates:
11883 * Constant: '<S275>/Constant'
11884 */
11885 L4_MABX_B.RelationalOperator1_ps = (L4_MABX_B.DifferenceInputs2 >=
11886 Lateral_Control_Error_Limit);
11887
11888 /* RelationalOperator: '<S298>/Relational Operator' incorporates:
11889 * Constant: '<S275>/Constant1'
11890 */
11891 PositionFinalLimited = -Lateral_Control_Error_Limit;
11892 L4_MABX_B.RelationalOperator_h = (L4_MABX_B.DifferenceInputs2 <=
11893 PositionFinalLimited);
11894
11895 /* Outputs for Atomic SubSystem: '<S298>/If_Then_Else1' */
11896 /* Constant: '<S275>/Constant1' */
11897 PositionFinalLimited = -Lateral_Control_Error_Limit;
11898 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_h, PositionFinalLimited,
11899 L4_MABX_B.DifferenceInputs2, &L4_MABX_B.If_Then_Else1_km);
11900
11901 /* End of Outputs for SubSystem: '<S298>/If_Then_Else1' */
11902
11903 /* Outputs for Atomic SubSystem: '<S298>/If_Then_Else' */
11904
11905 /* Constant: '<S275>/Constant' */
11906 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ps,
11907 Lateral_Control_Error_Limit,
11908 L4_MABX_B.If_Then_Else1_km.Switch,
11909 &L4_MABX_B.If_Then_Else_pn);
11910
11911 /* End of Outputs for SubSystem: '<S298>/If_Then_Else' */
11912
11913 /* Outputs for Atomic SubSystem: '<S275>/If_Then_Else1' */
11914
11915 /* Constant: '<S275>/Zero' */
11916 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.If_Then_Else_pn.Switch,
11917 L4_MABX_P.Zero_Value, &L4_MABX_B.If_Then_Else1_m);
11918
11919 /* End of Outputs for SubSystem: '<S275>/If_Then_Else1' */
11920
11921 /* Gain: '<S301>/Proportional Gain' */
11922 L4_MABX_B.ProportionalGain = Lateral_Control_P *
11923 L4_MABX_B.If_Then_Else1_m.Switch;
11924
11925 /* DiscreteIntegrator: '<S301>/Integrator' */
11926 if (AutonomousEnabled && (L4_MABX_DW.Integrator_PrevResetState <= 0)) {
11927 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
11928 }
11929
11930 L4_MABX_B.Integrator = L4_MABX_DW.Integrator_DSTATE;
11931
11932 /* End of DiscreteIntegrator: '<S301>/Integrator' */
11933
11934 /* Gain: '<S301>/Derivative Gain' */
11935 L4_MABX_B.DerivativeGain = Lateral_Control_D *
11936 L4_MABX_B.If_Then_Else1_m.Switch;
11937
11938 /* DiscreteIntegrator: '<S301>/Filter' */
11939 if (AutonomousEnabled && (L4_MABX_DW.Filter_PrevResetState <= 0)) {
11940 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
11941 }
11942
11943 L4_MABX_B.Filter = L4_MABX_DW.Filter_DSTATE;
11944
11945 /* End of DiscreteIntegrator: '<S301>/Filter' */
11946
11947 /* Sum: '<S301>/SumD' */
11948 L4_MABX_B.SumD = L4_MABX_B.DerivativeGain - L4_MABX_B.Filter;
11949
11950 /* Gain: '<S301>/Filter Coefficient' */
11951 L4_MABX_B.FilterCoefficient = L4_MABX_P.PIDController_N * L4_MABX_B.SumD;
11952
11953 /* Sum: '<S301>/Sum' */
11954 L4_MABX_B.Sum_c = (L4_MABX_B.ProportionalGain + L4_MABX_B.Integrator) +
11955 L4_MABX_B.FilterCoefficient;
11956
11957 /* Saturate: '<S301>/Saturate' */
11958 DeltaTime = L4_MABX_B.Sum_c;
11959 Time56 = L4_MABX_P.PIDController_LowerSaturationLi;
11960 PositionFinalLimited = L4_MABX_P.PIDController_UpperSaturationLi;
11961 if (DeltaTime > PositionFinalLimited) {
11962 L4_MABX_B.Saturate = PositionFinalLimited;
11963 } else if (DeltaTime < Time56) {
11964 L4_MABX_B.Saturate = Time56;
11965 } else {
11966 L4_MABX_B.Saturate = DeltaTime;
11967 }
11968
11969 /* End of Saturate: '<S301>/Saturate' */
11970
11971 /* UnitDelay: '<S305>/Delay Input' */
11972 L4_MABX_B.Uk1_m = L4_MABX_DW.DelayInput_DSTATE;
11973
11974 /* Gain: '<S305>/GainZero' */
11975 L4_MABX_B.ZeroUk1 = Lateral_Control_Zero * L4_MABX_B.Uk1_m;
11976
11977 /* UnitDelay: '<S305>/Delay Output' */
11978 L4_MABX_B.Yk1_p = L4_MABX_DW.DelayOutput_DSTATE;
11979
11980 /* Gain: '<S305>/GainPole' */
11981 L4_MABX_B.PoleYk1 = Lateral_Control_Pole * L4_MABX_B.Yk1_p;
11982
11983 /* Sum: '<S305>/Sum' */
11984 L4_MABX_B.PoleYk1UkZeroUk1 = (L4_MABX_B.Saturate - L4_MABX_B.ZeroUk1) +
11985 L4_MABX_B.PoleYk1;
11986
11987 /* DataTypeConversion: '<S305>/Downcast' */
11988 L4_MABX_B.Downcast = L4_MABX_B.PoleYk1UkZeroUk1;
11989
11990 /* Sum: '<S275>/Subtract' incorporates:
11991 * Constant: '<S275>/Constant6'
11992 */
11993 L4_MABX_B.Subtract_c = ReAX_ActualHandwheelPos - REAX_OFFSET_APV;
11994
11995 /* Lookup_n-D: '<S275>/1-D Lookup Table' */
11996 L4_MABX_B.uDLookupTable_j = look1_binlxpw(L4_MABX_B.Subtract_c,
11997 L4_MABX_P.uDLookupTable_bp01Data_d, L4_MABX_P.uDLookupTable_tableData_d, 71U);
11998
11999 /* Gain: '<S275>/deg2rad' */
12000 L4_MABX_B.deg2rad = L4_MABX_P.deg2rad_Gain_l * L4_MABX_B.uDLookupTable_j;
12001
12002 /* Gain: '<S275>/invert' */
12003 L4_MABX_B.invert = L4_MABX_P.invert_Gain_i * L4_MABX_B.deg2rad;
12004
12005 /* Gain: '<S275>/PGain' */
12006 L4_MABX_B.PGain = Lateral_Control_P * L4_MABX_B.If_Then_Else_pn.Switch;
12007
12008 /* SampleTimeMath: '<S303>/sample time'
12009 *
12010 * About '<S303>/sample time':
12011 * y = K where K = ( w * Ts )
12012 */
12013 L4_MABX_B.sampletime_a = L4_MABX_P.sampletime_WtEt_p;
12014
12015 /* Product: '<S303>/delta rise limit' incorporates:
12016 * Constant: '<S275>/Constant9'
12017 */
12018 L4_MABX_B.deltariselimit_o = Lateral_Control_Error_Rate_Limit *
12019 L4_MABX_B.sampletime_a;
12020
12021 /* Sum: '<S275>/Sum' incorporates:
12022 * Constant: '<S275>/YAW_RATE_OFFSET_APV'
12023 */
12024 L4_MABX_B.Sum_l = YawRate + YAW_RATE_OFFSET_APV;
12025
12026 /* RelationalOperator: '<S306>/Relational Operator1' incorporates:
12027 * Constant: '<S275>/Constant2'
12028 */
12029 L4_MABX_B.RelationalOperator1_f = (L4_MABX_B.Sum_l >=
12030 Lateral_Control_YawRate_Limit);
12031
12032 /* RelationalOperator: '<S306>/Relational Operator' incorporates:
12033 * Constant: '<S275>/Constant4'
12034 */
12035 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12036 L4_MABX_B.RelationalOperator_l4 = (L4_MABX_B.Sum_l <= PositionFinalLimited);
12037
12038 /* Outputs for Atomic SubSystem: '<S306>/If_Then_Else1' */
12039 /* Constant: '<S275>/Constant4' */
12040 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12041 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_l4, PositionFinalLimited,
12042 L4_MABX_B.Sum_l, &L4_MABX_B.If_Then_Else1_o0);
12043
12044 /* End of Outputs for SubSystem: '<S306>/If_Then_Else1' */
12045
12046 /* Outputs for Atomic SubSystem: '<S306>/If_Then_Else' */
12047
12048 /* Constant: '<S275>/Constant2' */
12049 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_f,
12050 Lateral_Control_YawRate_Limit,
12051 L4_MABX_B.If_Then_Else1_o0.Switch,
12052 &L4_MABX_B.If_Then_Else_m);
12053
12054 /* End of Outputs for SubSystem: '<S306>/If_Then_Else' */
12055
12056 /* Gain: '<S275>/RateFeedbackGain' */
12057 L4_MABX_B.RateFeedbackGain = Yaw_Rate_FF_Gain *
12058 L4_MABX_B.If_Then_Else_m.Switch;
12059
12060 /* RelationalOperator: '<S296>/Relational Operator1' incorporates:
12061 * Constant: '<S275>/Constant3'
12062 */
12063 L4_MABX_B.RelationalOperator1_gr = (Curvature >=
12064 Lateral_Control_Curvature_Limit);
12065
12066 /* RelationalOperator: '<S296>/Relational Operator' incorporates:
12067 * Constant: '<S275>/Constant5'
12068 */
12069 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
12070 L4_MABX_B.RelationalOperator_o = (Curvature <= PositionFinalLimited);
12071
12072 /* Outputs for Atomic SubSystem: '<S296>/If_Then_Else1' */
12073 /* Constant: '<S275>/Constant5' */
12074 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
12075 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_o, PositionFinalLimited,
12076 Curvature, &L4_MABX_B.If_Then_Else1_d);
12077
12078 /* End of Outputs for SubSystem: '<S296>/If_Then_Else1' */
12079
12080 /* Outputs for Atomic SubSystem: '<S296>/If_Then_Else' */
12081
12082 /* Constant: '<S275>/Constant3' */
12083 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gr,
12084 Lateral_Control_Curvature_Limit,
12085 L4_MABX_B.If_Then_Else1_d.Switch,
12086 &L4_MABX_B.If_Then_Else_p);
12087
12088 /* End of Outputs for SubSystem: '<S296>/If_Then_Else' */
12089
12090 /* Gain: '<S275>/FeedforwardGain' */
12091 L4_MABX_B.FeedforwardGain = Curvature_FF_Gain *
12092 L4_MABX_B.If_Then_Else_p.Switch;
12093
12094 /* Gain: '<S275>/UndersteerCorrection' */
12095 L4_MABX_B.UndersteerCorrection = UndersteerCorection *
12096 L4_MABX_B.FeedforwardGain;
12097
12098 /* Sum: '<S275>/Sum2' */
12099 L4_MABX_B.Sum2 = L4_MABX_B.UndersteerCorrection - L4_MABX_B.RateFeedbackGain;
12100
12101 /* UnitDelay: '<S303>/Delay Input2' */
12102 L4_MABX_B.Yk1_o = L4_MABX_DW.DelayInput2_DSTATE_a;
12103
12104 /* Sum: '<S303>/Difference Inputs1' */
12105 L4_MABX_B.UkYk1_n = L4_MABX_B.Sum2 - L4_MABX_B.Yk1_o;
12106
12107 /* RelationalOperator: '<S312>/LowerRelop1' */
12108 L4_MABX_B.LowerRelop1_o = (L4_MABX_B.UkYk1_n > L4_MABX_B.deltariselimit_o);
12109
12110 /* Product: '<S303>/delta fall limit' incorporates:
12111 * Constant: '<S275>/Constant10'
12112 */
12113 PositionFinalLimited = -Lateral_Control_Error_Rate_Limit;
12114 L4_MABX_B.deltafalllimit_o = PositionFinalLimited * L4_MABX_B.sampletime_a;
12115
12116 /* RelationalOperator: '<S312>/UpperRelop' */
12117 L4_MABX_B.UpperRelop_o = (L4_MABX_B.UkYk1_n < L4_MABX_B.deltafalllimit_o);
12118
12119 /* Switch: '<S312>/Switch' */
12120 if (L4_MABX_B.UpperRelop_o) {
12121 L4_MABX_B.Switch_e = L4_MABX_B.deltafalllimit_o;
12122 } else {
12123 L4_MABX_B.Switch_e = L4_MABX_B.UkYk1_n;
12124 }
12125
12126 /* End of Switch: '<S312>/Switch' */
12127
12128 /* Switch: '<S312>/Switch2' */
12129 if (L4_MABX_B.LowerRelop1_o) {
12130 L4_MABX_B.Switch2_e = L4_MABX_B.deltariselimit_o;
12131 } else {
12132 L4_MABX_B.Switch2_e = L4_MABX_B.Switch_e;
12133 }
12134
12135 /* End of Switch: '<S312>/Switch2' */
12136
12137 /* Sum: '<S303>/Difference Inputs2' */
12138 L4_MABX_B.DifferenceInputs2_a = L4_MABX_B.Switch2_e + L4_MABX_B.Yk1_o;
12139
12140 /* Sum: '<S275>/Sum3' */
12141 L4_MABX_B.Sum3 = (L4_MABX_B.invert - L4_MABX_B.PGain) -
12142 L4_MABX_B.DifferenceInputs2_a;
12143
12144 /* DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
12145 if (L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI != 0) {
12146 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12147 }
12148
12149 if (AutonomousEnabled && (L4_MABX_DW.DiscreteTimeIntegrator_PrevRese <= 0)) {
12150 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12151 }
12152
12153 L4_MABX_B.DiscreteTimeIntegrator = L4_MABX_DW.DiscreteTimeIntegrator_DSTATE;
12154
12155 /* End of DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
12156
12157 /* Sum: '<S275>/Sum4' */
12158 L4_MABX_B.Sum4 = L4_MABX_B.Downcast + L4_MABX_B.DiscreteTimeIntegrator;
12159
12160 /* Sum: '<S275>/Sum1' */
12161 Lateral_Control_Output = L4_MABX_B.Sum4 + L4_MABX_B.DifferenceInputs2_a;
12162
12163 /* UnitDelay: '<S315>/Delay Input2' */
12164 L4_MABX_B.Yk1_pm = L4_MABX_DW.DelayInput2_DSTATE_l;
12165
12166 /* Sum: '<S315>/Difference Inputs1' */
12167 L4_MABX_B.UkYk1_f = Lateral_Control_Output - L4_MABX_B.Yk1_pm;
12168
12169 /* RelationalOperator: '<S317>/LowerRelop1' */
12170 L4_MABX_B.LowerRelop1_l = (L4_MABX_B.UkYk1_f > L4_MABX_B.deltariselimit);
12171
12172 /* Gain: '<S304>/Gain3' */
12173 L4_MABX_B.RateLimitLower = L4_MABX_P.Gain3_Gain_p * Lateral_Control_Rate_Limit;
12174
12175 /* Product: '<S315>/delta fall limit' */
12176 L4_MABX_B.deltafalllimit_n = L4_MABX_B.RateLimitLower * L4_MABX_B.sampletime;
12177
12178 /* RelationalOperator: '<S317>/UpperRelop' */
12179 L4_MABX_B.UpperRelop_k = (L4_MABX_B.UkYk1_f < L4_MABX_B.deltafalllimit_n);
12180
12181 /* Switch: '<S317>/Switch' */
12182 if (L4_MABX_B.UpperRelop_k) {
12183 L4_MABX_B.Switch_f = L4_MABX_B.deltafalllimit_n;
12184 } else {
12185 L4_MABX_B.Switch_f = L4_MABX_B.UkYk1_f;
12186 }
12187
12188 /* End of Switch: '<S317>/Switch' */
12189
12190 /* Switch: '<S317>/Switch2' */
12191 if (L4_MABX_B.LowerRelop1_l) {
12192 L4_MABX_B.Switch2_fa = L4_MABX_B.deltariselimit;
12193 } else {
12194 L4_MABX_B.Switch2_fa = L4_MABX_B.Switch_f;
12195 }
12196
12197 /* End of Switch: '<S317>/Switch2' */
12198
12199 /* Sum: '<S315>/Difference Inputs2' */
12200 L4_MABX_B.DifferenceInputs2_m = L4_MABX_B.Switch2_fa + L4_MABX_B.Yk1_pm;
12201
12202 /* RelationalOperator: '<S316>/LowerRelop1' */
12203 L4_MABX_B.LowerRelop1_e = (L4_MABX_B.DifferenceInputs2_m >
12204 L4_MABX_B.SaturationSpeedLookup);
12205
12206 /* Gain: '<S304>/Gain1' */
12207 L4_MABX_B.Gain1_fi = L4_MABX_P.Gain1_Gain_p * L4_MABX_B.SaturationSpeedLookup;
12208
12209 /* RelationalOperator: '<S316>/UpperRelop' */
12210 L4_MABX_B.UpperRelop_fl = (L4_MABX_B.DifferenceInputs2_m < L4_MABX_B.Gain1_fi);
12211
12212 /* Switch: '<S316>/Switch' */
12213 if (L4_MABX_B.UpperRelop_fl) {
12214 L4_MABX_B.Switch_hx = L4_MABX_B.Gain1_fi;
12215 } else {
12216 L4_MABX_B.Switch_hx = L4_MABX_B.DifferenceInputs2_m;
12217 }
12218
12219 /* End of Switch: '<S316>/Switch' */
12220
12221 /* Switch: '<S316>/Switch2' */
12222 if (L4_MABX_B.LowerRelop1_e) {
12223 L4_MABX_B.Switch2_k = L4_MABX_B.SaturationSpeedLookup;
12224 } else {
12225 L4_MABX_B.Switch2_k = L4_MABX_B.Switch_hx;
12226 }
12227
12228 /* End of Switch: '<S316>/Switch2' */
12229
12230 /* Outputs for Atomic SubSystem: '<S304>/If_Then_Else' */
12231 L4_MABX_If_Then_Else_c(L4_MABX_B.DataTypeConversion_l, L4_MABX_B.Switch2_k,
12232 Lateral_Control_Output, &L4_MABX_B.If_Then_Else_co);
12233
12234 /* End of Outputs for SubSystem: '<S304>/If_Then_Else' */
12235
12236 /* SignalConversion: '<S304>/TmpSignal ConversionAtIf_Then_ElseOutport1' */
12237 Lateral_Control_Rate_Limiter_Output = L4_MABX_B.If_Then_Else_co.Switch;
12238
12239 /* MATLAB Function: '<S274>/Error Calc' */
12240 /* MATLAB Function 'STEERCTRL_10ms/StanleyController/Error Calc': '<S293>:1' */
12241 /* '<S293>:1:3' */
12242 L4_MABX_B.error = TargetAzimuth_rad - CurrentAzimuth_rad;
12243 if (L4_MABX_B.error < -3.1415926535897931) {
12244 /* '<S293>:1:5' */
12245 /* '<S293>:1:6' */
12246 L4_MABX_B.error += 6.2831853071795862;
12247 } else {
12248 if (L4_MABX_B.error > 3.1415926535897931) {
12249 /* '<S293>:1:7' */
12250 /* '<S293>:1:8' */
12251 L4_MABX_B.error -= 6.2831853071795862;
12252 }
12253 }
12254
12255 /* End of MATLAB Function: '<S274>/Error Calc' */
12256
12257 /* MultiPortSwitch: '<S80>/Multiport Switch2' incorporates:
12258 * Constant: '<S80>/LAT_STEER_SRC_SELECTOR_APV'
12259 */
12260 if (LAT_STEER_SRC_SELECTOR_APV == ENUM_LAT_STEER_SOURCE_T_PIC_HARIS) {
12261 /* Outputs for Atomic SubSystem: '<S275>/If_Then_Else' */
12262 L4_MABX_If_Then_Else_g(AutonomousEnabled,
12263 Lateral_Control_Rate_Limiter_Output, L4_MABX_B.invert,
12264 &L4_MABX_B.If_Then_Else_m1);
12265
12266 /* End of Outputs for SubSystem: '<S275>/If_Then_Else' */
12267 L4_MABX_B.MultiportSwitch2 = L4_MABX_B.If_Then_Else_m1.Switch;
12268 } else {
12269 /* Saturate: '<S274>/Speed Saturation' */
12270 DeltaTime = L4_MABX_B.DataTypeConversion_ku;
12271 Time56 = L4_MABX_P.SpeedSaturation_LowerSat;
12272 PositionFinalLimited = L4_MABX_P.SpeedSaturation_UpperSat;
12273 if (DeltaTime > PositionFinalLimited) {
12274 L4_MABX_B.SpeedSaturation = PositionFinalLimited;
12275 } else if (DeltaTime < Time56) {
12276 L4_MABX_B.SpeedSaturation = Time56;
12277 } else {
12278 L4_MABX_B.SpeedSaturation = DeltaTime;
12279 }
12280
12281 /* End of Saturate: '<S274>/Speed Saturation' */
12282
12283 /* Gain: '<S274>/km//h to m//s' */
12284 L4_MABX_B.kmhtoms = L4_MABX_P.kmhtoms_Gain * L4_MABX_B.SpeedSaturation;
12285
12286 /* Product: '<S274>/Product' incorporates:
12287 * Constant: '<S274>/StanleySteeringControlGain'
12288 */
12289 L4_MABX_B.Product_n = STANLEY_GAIN_APV * CrosstrackError;
12290
12291 /* Trigonometry: '<S274>/Trigonometric Function' */
12292 L4_MABX_B.TrigonometricFunction_l = rt_atan2d_snf(L4_MABX_B.Product_n,
12293 L4_MABX_B.kmhtoms);
12294
12295 /* Saturate: '<S274>/Error Saturation' */
12296 DeltaTime = L4_MABX_B.error;
12297 Time56 = L4_MABX_P.ErrorSaturation_LowerSat;
12298 PositionFinalLimited = L4_MABX_P.ErrorSaturation_UpperSat;
12299 if (DeltaTime > PositionFinalLimited) {
12300 L4_MABX_B.ErrorSaturation = PositionFinalLimited;
12301 } else if (DeltaTime < Time56) {
12302 L4_MABX_B.ErrorSaturation = Time56;
12303 } else {
12304 L4_MABX_B.ErrorSaturation = DeltaTime;
12305 }
12306
12307 /* End of Saturate: '<S274>/Error Saturation' */
12308
12309 /* Sum: '<S274>/Sum1' */
12310 L4_MABX_B.Sum1 = L4_MABX_B.ErrorSaturation +
12311 L4_MABX_B.TrigonometricFunction_l;
12312
12313 /* Sum: '<S274>/Subtract' incorporates:
12314 * Constant: '<S274>/ReAX Offset'
12315 */
12316 L4_MABX_B.Subtract_ej = ReAX_ActualHandwheelPos - REAX_OFFSET_APV;
12317
12318 /* Lookup_n-D: '<S274>/1-D Lookup Table' */
12319 L4_MABX_B.uDLookupTable_h = look1_binlxpw(L4_MABX_B.Subtract_ej,
12320 L4_MABX_P.uDLookupTable_bp01Data_k, L4_MABX_P.uDLookupTable_tableData_k,
12321 71U);
12322
12323 /* Gain: '<S274>/deg2rad' */
12324 L4_MABX_B.deg2rad_o = L4_MABX_P.deg2rad_Gain_n * L4_MABX_B.uDLookupTable_h;
12325
12326 /* Gain: '<S274>/invert' */
12327 L4_MABX_B.invert_d = L4_MABX_P.invert_Gain * L4_MABX_B.deg2rad_o;
12328
12329 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else' */
12330 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.Sum1, L4_MABX_B.invert_d,
12331 &L4_MABX_B.If_Then_Else_nh);
12332
12333 /* End of Outputs for SubSystem: '<S274>/If_Then_Else' */
12334 L4_MABX_B.MultiportSwitch2 = L4_MABX_B.If_Then_Else_nh.Switch;
12335 }
12336
12337 /* End of MultiPortSwitch: '<S80>/Multiport Switch2' */
12338
12339 /* DataTypeConversion: '<S80>/Data Type Conversion6' */
12340 L4_MABX_B.DataTypeConversion6_p = L4_MABX_B.MultiportSwitch2;
12341
12342 /* Gain: '<S80>/rad2deg' */
12343 L4_MABX_B.rad2deg = L4_MABX_P.rad2deg_Gain * L4_MABX_B.DataTypeConversion6_p;
12344
12345 /* Gain: '<S80>/sign flip' */
12346 SteerCommandDeg = L4_MABX_P.signflip_Gain * L4_MABX_B.rad2deg;
12347
12348 /* MultiPortSwitch: '<S80>/Multiport Switch1' incorporates:
12349 * Constant: '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
12350 * Constant: '<S80>/SteeringOverrideVal1'
12351 */
12352 switch (LONG_SPEED_SRC_SELECTOR_APV) {
12353 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
12354 /* MultiPortSwitch: '<S80>/Multiport Switch' incorporates:
12355 * Constant: '<S80>/SteeringControlSRC'
12356 * Constant: '<S80>/SteeringOverrideVal'
12357 */
12358 switch (L4_MABX_P.SteeringControlSRC_Value) {
12359 case 0:
12360 L4_MABX_B.MultiportSwitch_f = L4_MABX_P.SteeringOverrideVal_Value;
12361 break;
12362
12363 case 1:
12364 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.Switch2_i;
12365 break;
12366
12367 case 2:
12368 /* DataTypeConversion: '<S80>/Data Type Conversion2' */
12369 L4_MABX_B.DataTypeConversion2_ox = L4_MABX_B.Add2;
12370 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion2_ox;
12371 break;
12372
12373 default:
12374 /* DataTypeConversion: '<S80>/Data Type Conversion3' */
12375 L4_MABX_B.DataTypeConversion3_p = L4_MABX_B.Add1_h;
12376 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion3_p;
12377 break;
12378 }
12379
12380 /* End of MultiPortSwitch: '<S80>/Multiport Switch' */
12381
12382 /* Gain: '<S80>/rad2deg2' */
12383 L4_MABX_B.rad2deg2 = L4_MABX_P.rad2deg2_Gain * L4_MABX_B.MultiportSwitch_f;
12384 L4_MABX_B.MultiportSwitch1 = L4_MABX_B.rad2deg2;
12385 break;
12386
12387 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
12388 L4_MABX_B.MultiportSwitch1 = L4_MABX_P.SteeringOverrideVal1_Value;
12389 break;
12390
12391 default:
12392 L4_MABX_B.MultiportSwitch1 = SteerCommandDeg;
12393 break;
12394 }
12395
12396 /* End of MultiPortSwitch: '<S80>/Multiport Switch1' */
12397
12398 /* Lookup_n-D: '<S270>/1D_Lookup_Table' */
12399 L4_MABX_B.uD_Lookup_Table_a = look1_binlcapw(L4_MABX_B.MultiportSwitch1,
12400 STEERCTRL_WHEEL_ANGLE_STEP_MPV, STEERCTRL_WHEEL_ANGLE_DATA_MPV, 71U);
12401
12402 /* DataTypeConversion: '<S80>/Data Type Conversion4' */
12403 L4_MABX_B.numLanePoints_j = L4_MABX_B.DataTypeConversion5_e3;
12404
12405 /* DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
12406 * Constant: '<S80>/ResetIntegrator'
12407 */
12408 if ((L4_MABX_P.ResetIntegrator_Value != 0.0) ||
12409 (L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e != 0)) {
12410 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12411 L4_MABX_P.DiscreteTimeIntegrator_IC;
12412 }
12413
12414 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
12415 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
12416 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12417 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
12418 } else {
12419 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
12420 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
12421 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12422 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
12423 }
12424 }
12425
12426 L4_MABX_B.DiscreteTimeIntegrator_h =
12427 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e;
12428
12429 /* End of DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
12430
12431 /* RelationalOperator: '<S282>/Lower Test' incorporates:
12432 * Constant: '<S282>/Lower Limit'
12433 */
12434 L4_MABX_B.LowerTest = (L4_MABX_P.IntervalTest_lowlimit <= L4_MABX_B.Divide_nn);
12435
12436 /* RelationalOperator: '<S282>/Upper Test' incorporates:
12437 * Constant: '<S282>/Upper Limit'
12438 */
12439 L4_MABX_B.UpperTest = (L4_MABX_B.Divide_nn <= L4_MABX_P.IntervalTest_uplimit);
12440
12441 /* Logic: '<S282>/AND' */
12442 L4_MABX_B.AND_p = (L4_MABX_B.LowerTest && L4_MABX_B.UpperTest);
12443
12444 /* Assertion: '<S279>/Assertion' */
12445 utAssert(L4_MABX_B.AND_p);
12446
12447 /* RelationalOperator: '<S287>/Lower Test' incorporates:
12448 * Constant: '<S287>/Lower Limit'
12449 */
12450 L4_MABX_B.LowerTest_l = (L4_MABX_P.IntervalTest_lowlimit_k <=
12451 L4_MABX_B.Divide_d0);
12452
12453 /* RelationalOperator: '<S287>/Upper Test' incorporates:
12454 * Constant: '<S287>/Upper Limit'
12455 */
12456 L4_MABX_B.UpperTest_e = (L4_MABX_B.Divide_d0 <=
12457 L4_MABX_P.IntervalTest_uplimit_e);
12458
12459 /* Logic: '<S287>/AND' */
12460 L4_MABX_B.AND_j = (L4_MABX_B.LowerTest_l && L4_MABX_B.UpperTest_e);
12461
12462 /* Assertion: '<S284>/Assertion' */
12463 utAssert(L4_MABX_B.AND_j);
12464
12465 /* Switch: '<S290>/Switch' incorporates:
12466 * Constant: '<S273>/Constant8'
12467 * Constant: '<S273>/Constant9'
12468 */
12469 if (L4_MABX_P.Constant8_Value_l) {
12470 L4_MABX_B.Switch_k = L4_MABX_P.Constant9_Value;
12471 } else {
12472 L4_MABX_B.Switch_k = L4_MABX_B.Add_px;
12473 }
12474
12475 /* End of Switch: '<S290>/Switch' */
12476
12477 /* RelationalOperator: '<S80>/Relational Operator' incorporates:
12478 * Constant: '<S80>/Constant1'
12479 */
12480 L4_MABX_B.RelationalOperator_oq = (L4_MABX_B.DataTypeConversion5_e3 >=
12481 L4_MABX_P.Constant1_Value_ls);
12482
12483 /* Gain: '<S295>/Gain' */
12484 L4_MABX_B.Gain_o = L4_MABX_P.Gain_Gain_p * L4_MABX_B.DiscreteTimeIntegrator;
12485
12486 /* Gain: '<S301>/Integral Gain' */
12487 L4_MABX_B.IntegralGain = Lateral_Control_I * L4_MABX_B.If_Then_Else1_m.Switch;
12488
12489 /* Abs: '<S304>/Abs' */
12490 L4_MABX_B.Abs_ig = fabs(L4_MABX_B.If_Then_Else_p.Switch);
12491
12492 /* Abs: '<S304>/Abs1' */
12493 L4_MABX_B.Abs1_ft = fabs(L4_MABX_B.DifferenceInputs2);
12494
12495 /* Sum: '<S304>/Subtract' */
12496 L4_MABX_B.Subtract_o = Lateral_Control_Output - L4_MABX_B.DifferenceInputs2_m;
12497
12498 /* Abs: '<S304>/Abs2' */
12499 L4_MABX_B.Abs2_k = fabs(L4_MABX_B.Subtract_o);
12500
12501 /* RelationalOperator: '<S313>/Compare' incorporates:
12502 * Constant: '<S313>/Constant'
12503 */
12504 RateLimiterActive = (L4_MABX_B.Abs2_k > L4_MABX_P.CompareToConstant_const_g);
12505
12506 /* Lookup_n-D: '<S304>/Curvature Lookup Table' */
12507 L4_MABX_B.RateCurvature = look1_binlcapw(L4_MABX_B.Abs_ig,
12508 L4_MABX_P.CurvatureLookupTable_bp01Data,
12509 L4_MABX_P.CurvatureLookupTable_tableData, 4U);
12510
12511 /* Lookup_n-D: '<S304>/Error Lookup Table' */
12512 L4_MABX_B.RateError = look1_binlcapw(L4_MABX_B.Abs1_ft,
12513 L4_MABX_P.ErrorLookupTable_bp01Data, L4_MABX_P.ErrorLookupTable_tableData,
12514 4U);
12515
12516 /* MinMax: '<S304>/Max' */
12517 DeltaTime = L4_MABX_B.RateCurvature;
12518 PositionFinalLimited = L4_MABX_B.RateError;
12519 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
12520 PositionFinalLimited = DeltaTime;
12521 }
12522
12523 L4_MABX_B.Max = PositionFinalLimited;
12524
12525 /* End of MinMax: '<S304>/Max' */
12526
12527 /* Lookup_n-D: '<S304>/Speed Lookup Table' */
12528 L4_MABX_B.RateSpeed = look1_binlcapw(L4_MABX_B.DataTypeConversion_ku,
12529 L4_MABX_P.SpeedLookupTable_bp01Data, L4_MABX_P.SpeedLookupTable_tableData,
12530 5U);
12531
12532 /* MinMax: '<S304>/Min' */
12533 DeltaTime = L4_MABX_B.Max;
12534 PositionFinalLimited = L4_MABX_B.RateSpeed;
12535 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
12536 PositionFinalLimited = DeltaTime;
12537 }
12538
12539 L4_MABX_B.Min = PositionFinalLimited;
12540
12541 /* End of MinMax: '<S304>/Min' */
12542
12543 /* RateLimiter: '<S304>/Limit Rate Limiter' */
12544 PositionFinalLimited = L4_MABX_B.Min - L4_MABX_DW.PrevY;
12545 if (PositionFinalLimited > L4_MABX_P.LimitRateLimiter_RisingLim) {
12546 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
12547 L4_MABX_P.LimitRateLimiter_RisingLim;
12548 } else if (PositionFinalLimited < L4_MABX_P.LimitRateLimiter_FallingLim) {
12549 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
12550 L4_MABX_P.LimitRateLimiter_FallingLim;
12551 } else {
12552 L4_MABX_B.RateLimitUpper = L4_MABX_B.Min;
12553 }
12554
12555 L4_MABX_DW.PrevY = L4_MABX_B.RateLimitUpper;
12556
12557 /* End of RateLimiter: '<S304>/Limit Rate Limiter' */
12558
12559 /* Gain: '<S80>/sign2' */
12560 DesiredSteeringAngle = L4_MABX_P.sign2_Gain * L4_MABX_B.uD_Lookup_Table_a;
12561
12562 /* Sum: '<S80>/Subtract' incorporates:
12563 * Constant: '<S80>/Constant'
12564 */
12565 L4_MABX_B.Subtract_c1 = DesiredSteeringAngle + REAX_OFFSET_APV;
12566
12567 /* UnitDelay: '<S80>/Unit Delay' */
12568 L4_MABX_B.UnitDelay_p = L4_MABX_DW.UnitDelay_DSTATE_e;
12569
12570 /* Switch: '<S80>/Switch1' incorporates:
12571 * Constant: '<S80>/Constant2'
12572 * Switch: '<S80>/Switch2'
12573 */
12574 if (L4_MABX_B.RelationalOperator_oq) {
12575 /* Product: '<S80>/Product3' incorporates:
12576 * Constant: '<S80>/SteeringControlNewIGain1'
12577 */
12578 L4_MABX_B.Product3 = L4_MABX_B.mm2m *
12579 L4_MABX_P.SteeringControlNewIGain1_Value;
12580 L4_MABX_B.Switch1_p = L4_MABX_B.Product3;
12581
12582 /* Gain: '<S80>/deg2rad' */
12583 L4_MABX_B.deg2rad_d = L4_MABX_P.deg2rad_Gain * L4_MABX_B.SFunction1_o1_ae;
12584
12585 /* Product: '<S80>/Product2' incorporates:
12586 * Constant: '<S80>/SteeringControlNewPGain1'
12587 */
12588 L4_MABX_B.Product2_my = L4_MABX_B.deg2rad_d *
12589 L4_MABX_P.SteeringControlNewPGain1_Value;
12590 L4_MABX_B.Switch2_i1 = L4_MABX_B.Product2_my;
12591 } else {
12592 L4_MABX_B.Switch1_p = L4_MABX_P.Constant2_Value_n;
12593 L4_MABX_B.Switch2_i1 = L4_MABX_B.UnitDelay_p;
12594 }
12595
12596 /* End of Switch: '<S80>/Switch1' */
12597
12598 /* RelationalOperator: '<S347>/min_relop' incorporates:
12599 * Constant: '<S347>/min_val'
12600 */
12601 L4_MABX_B.min_relop_k = (L4_MABX_P.CheckStaticLowerBound_min_o <=
12602 L4_MABX_B.Divide_e);
12603
12604 /* Assertion: '<S347>/Assertion' */
12605 utAssert(L4_MABX_B.min_relop_k);
12606
12607 /* Logic: '<S356>/Logical Operator2' */
12608 L4_MABX_B.LogicalOperator2_gg = !L4_MABX_B.LogicalOperator1_ph;
12609
12610 /* Switch: '<S365>/Reset' incorporates:
12611 * Constant: '<S360>/CPV'
12612 */
12613 if (L4_MABX_B.LogicalOperator1_ja) {
12614 L4_MABX_B.Xnew = L4_MABX_P.CPV_Value_h;
12615 } else {
12616 L4_MABX_B.Xnew = L4_MABX_B.If_Then_Else_gf.Switch;
12617 }
12618
12619 /* End of Switch: '<S365>/Reset' */
12620
12621 /* UnitDelay: '<S367>/FixPt Unit Delay2' */
12622 L4_MABX_B.FixPtUnitDelay2_ji = L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw;
12623
12624 /* Logic: '<S367>/FixPt Logical Operator' */
12625 L4_MABX_B.FixPtLogicalOperator_i = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12626 (L4_MABX_B.FixPtUnitDelay2_ji != 0));
12627
12628 /* UnitDelay: '<S367>/FixPt Unit Delay1' */
12629 L4_MABX_B.Xold_d = L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe;
12630
12631 /* Switch: '<S367>/Init' incorporates:
12632 * Constant: '<S361>/CPV'
12633 */
12634 if (L4_MABX_B.FixPtLogicalOperator_i != 0) {
12635 L4_MABX_B.Init_o = L4_MABX_P.CPV_Value_n;
12636 } else {
12637 L4_MABX_B.Init_o = L4_MABX_B.Xold_d;
12638 }
12639
12640 /* End of Switch: '<S367>/Init' */
12641
12642 /* UnitDelay: '<S368>/FixPt Unit Delay2' */
12643 L4_MABX_B.FixPtUnitDelay2_m = L4_MABX_DW.FixPtUnitDelay2_DSTATE_g;
12644
12645 /* Logic: '<S368>/FixPt Logical Operator' */
12646 L4_MABX_B.FixPtLogicalOperator_b = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12647 (L4_MABX_B.FixPtUnitDelay2_m != 0));
12648
12649 /* UnitDelay: '<S368>/FixPt Unit Delay1' */
12650 L4_MABX_B.Xold_mg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g;
12651
12652 /* Switch: '<S368>/Init' incorporates:
12653 * Constant: '<S359>/CPV2'
12654 */
12655 if (L4_MABX_B.FixPtLogicalOperator_b != 0) {
12656 L4_MABX_B.Init_l = L4_MABX_P.CPV2_Value_p;
12657 } else {
12658 L4_MABX_B.Init_l = L4_MABX_B.Xold_mg;
12659 }
12660
12661 /* End of Switch: '<S368>/Init' */
12662
12663 /* MultiPortSwitch: '<S366>/Multiport Switch' incorporates:
12664 * Constant: '<S359>/CPV2'
12665 * Constant: '<S366>/Integrator_method'
12666 */
12667 switch ((int32_T)L4_MABX_P.Integrator_method_Value) {
12668 case 1:
12669 L4_MABX_B.MultiportSwitch_i = L4_MABX_P.CPV2_Value_p;
12670 break;
12671
12672 case 2:
12673 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.Init_l;
12674 break;
12675
12676 default:
12677 /* Sum: '<S366>/Add' incorporates:
12678 * Constant: '<S359>/CPV2'
12679 */
12680 L4_MABX_B.Add_py = L4_MABX_B.Init_l + L4_MABX_P.CPV2_Value_p;
12681
12682 /* Gain: '<S366>/Gain' */
12683 L4_MABX_B.u_trapezoidal = L4_MABX_P.Gain_Gain_j * L4_MABX_B.Add_py;
12684 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.u_trapezoidal;
12685 break;
12686 }
12687
12688 /* End of MultiPortSwitch: '<S366>/Multiport Switch' */
12689
12690 /* DigitalClock: '<S362>/Digital Clock' */
12691 L4_MABX_B.DigitalClock_d = L4_MABX_M->Timing.t[0];
12692
12693 /* UnitDelay: '<S362>/Unit_Delay' */
12694 L4_MABX_B.Unit_Delay_p = L4_MABX_DW.Unit_Delay_DSTATE_j;
12695
12696 /* Sum: '<S362>/Subtract' */
12697 L4_MABX_B.Subtract_k = L4_MABX_B.DigitalClock_d - L4_MABX_B.Unit_Delay_p;
12698
12699 /* Product: '<S361>/Product1' incorporates:
12700 * Constant: '<S359>/CPV'
12701 */
12702 L4_MABX_B.Product1_am = L4_MABX_P.CPV_Value_g * L4_MABX_B.MultiportSwitch_i *
12703 L4_MABX_B.Subtract_k;
12704
12705 /* Sum: '<S361>/Add' */
12706 L4_MABX_B.Add_db = L4_MABX_B.Init_o + L4_MABX_B.Product1_am;
12707
12708 /* Switch: '<S368>/Reset' incorporates:
12709 * Constant: '<S359>/CPV2'
12710 */
12711 L4_MABX_B.Xnew_f = L4_MABX_P.CPV2_Value_p;
12712
12713 /* Switch: '<S367>/Reset' incorporates:
12714 * Constant: '<S361>/CPV'
12715 */
12716 if (L4_MABX_B.LogicalOperator1_ja) {
12717 L4_MABX_B.Xnew_h = L4_MABX_P.CPV_Value_n;
12718 } else {
12719 L4_MABX_B.Xnew_h = L4_MABX_B.Add_db;
12720 }
12721
12722 /* End of Switch: '<S367>/Reset' */
12723
12724 /* RelationalOperator: '<S375>/min_relop' incorporates:
12725 * Constant: '<S339>/FCW_CTRL_SLEW_INC_APV'
12726 * Constant: '<S375>/min_val'
12727 */
12728 L4_MABX_B.min_relop_c = (L4_MABX_P.CheckStaticLowerBound_min_h <=
12729 L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
12730
12731 /* Assertion: '<S375>/Assertion' */
12732 utAssert(L4_MABX_B.min_relop_c);
12733
12734 /* RelationalOperator: '<S386>/min_relop' incorporates:
12735 * Constant: '<S341>/STABILITY_CTRL_SLEW_INC_APV'
12736 * Constant: '<S386>/min_val'
12737 */
12738 L4_MABX_B.min_relop_f = (L4_MABX_P.CheckStaticLowerBound_min_nz <=
12739 L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
12740
12741 /* Assertion: '<S386>/Assertion' */
12742 utAssert(L4_MABX_B.min_relop_f);
12743
12744 /* End of Outputs for SubSystem: '<S65>/Task_10ms' */
12745
12746 /* Outputs for Enabled SubSystem: '<S620>/PosRapidUpdate_011' incorporates:
12747 * EnablePort: '<S621>/Enable'
12748 */
12749 /* Constant: '<S443>/Constant' */
12750 if (L4_MABX_P.Constant_Value_dn > 0.0) {
12751 /* S-Function (rti_commonblock): '<S621>/S-Function1' */
12752 /* This comment workarounds a code generation problem */
12753
12754 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248128 */
12755 {
12756 UInt32 *CAN_Msg;
12757 static dsfloat time_old = 0.0;
12758
12759 /* Read status and timestamp info (previous message) */
12760 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp !=
12761 time_old) {
12762 /* ... save timestamp info for the calculation of the RX status
12763 during the consecutive sample hit*/
12764 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].
12765 timestamp;
12766
12767 /* ... set the processed flag to one */
12768 L4_MABX_B.SFunction1_o3_p2 = 1.0;
12769 L4_MABX_B.SFunction1_o4_jw = (real_T)
12770 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp;
12771 L4_MABX_B.SFunction1_o5_c = (real_T)
12772 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].deltatime;
12773 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].data;
12774
12775 /* Decode CAN message */
12776 {
12777 {
12778 rtican_Signal_t CAN_Sgn;
12779
12780 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12781 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12782 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12783 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12784 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12785 L4_MABX_B.SFunction1_o1_iy = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12786 );
12787
12788 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12789 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12790 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12791 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12792 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12793 L4_MABX_B.SFunction1_o2_l = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn) );
12794 }
12795 }
12796 } else {
12797 /* set RX status to 0 because no new message has arrived */
12798 L4_MABX_B.SFunction1_o3_p2 = 0.0;
12799 }
12800 }
12801 }
12802
12803 /* End of Outputs for SubSystem: '<S620>/PosRapidUpdate_011' */
12804
12805 /* Outputs for Atomic SubSystem: '<S461>/If_Then_Else' */
12806
12807 /* Constant: '<S461>/useGPSSA00' incorporates:
12808 * Constant: '<S461>/useGPSSA0'
12809 */
12810 L4_MABX_If_Then_Else3(L4_MABX_B.LogicalOperator1_p, L4_MABX_P.useGPSSA00_Value,
12811 L4_MABX_P.useGPSSA0_Value, &L4_MABX_B.If_Then_Else);
12812
12813 /* End of Outputs for SubSystem: '<S461>/If_Then_Else' */
12814
12815 /* Outputs for Enabled SubSystem: '<S620>/PosRapidUpdate_1' incorporates:
12816 * EnablePort: '<S622>/Enable'
12817 */
12818 /* Constant: '<S443>/Constant' */
12819 if (L4_MABX_P.Constant_Value_dn > 0.0) {
12820 /* S-Function (rti_commonblock): '<S622>/S-Function1' */
12821 /* This comment workarounds a code generation problem */
12822
12823 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248129 */
12824 {
12825 UInt32 *CAN_Msg;
12826 static dsfloat time_old = 0.0;
12827
12828 /* Read status and timestamp info (previous message) */
12829 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp !=
12830 time_old) {
12831 /* ... save timestamp info for the calculation of the RX status
12832 during the consecutive sample hit*/
12833 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].
12834 timestamp;
12835
12836 /* ... set the processed flag to one */
12837 L4_MABX_B.SFunction1_o3_ah = 1.0;
12838 L4_MABX_B.SFunction1_o4_l4 = (real_T)
12839 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp;
12840 L4_MABX_B.SFunction1_o5_ic = (real_T)
12841 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].deltatime;
12842 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].data;
12843
12844 /* Decode CAN message */
12845 {
12846 {
12847 rtican_Signal_t CAN_Sgn;
12848
12849 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12850 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12851 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12852 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12853 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12854 L4_MABX_B.SFunction1_o1_a5 = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12855 );
12856
12857 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12858 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12859 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12860 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12861 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12862 L4_MABX_B.SFunction1_o2_k4 = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12863 );
12864 }
12865 }
12866 } else {
12867 /* set RX status to 0 because no new message has arrived */
12868 L4_MABX_B.SFunction1_o3_ah = 0.0;
12869 }
12870 }
12871 }
12872
12873 /* End of Outputs for SubSystem: '<S620>/PosRapidUpdate_1' */
12874
12875 /* Switch: '<S620>/Switch' */
12876 if (L4_MABX_B.If_Then_Else.Switch) {
12877 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_iy;
12878 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_l;
12879 } else {
12880 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_a5;
12881 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_k4;
12882 }
12883
12884 /* Outputs for Enabled SubSystem: '<S500>/CCVS1_00' incorporates:
12885 * EnablePort: '<S501>/Enable'
12886 */
12887 /* Constant: '<S424>/Constant' */
12888 if (L4_MABX_P.Constant_Value_lb) {
12889 /* S-Function (rti_commonblock): '<S501>/S-Function1' */
12890 /* This comment workarounds a code generation problem */
12891
12892 /* dSPACE RTICAN RX Message Block: "CCVS1_00" Id:218034432 */
12893 {
12894 UInt32 *CAN_Msg;
12895 static dsfloat time_old = 0.0;
12896
12897 /* Read status and timestamp info (previous message) */
12898 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp !=
12899 time_old) {
12900 /* ... save timestamp info for the calculation of the RX status
12901 during the consecutive sample hit*/
12902 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].
12903 timestamp;
12904
12905 /* ... set the processed flag to one */
12906 L4_MABX_B.SFunction1_o21_j = 1.0;
12907 L4_MABX_B.SFunction1_o22_g = (real_T)
12908 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp;
12909 L4_MABX_B.SFunction1_o23_d = (real_T)
12910 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].deltatime;
12911 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].data;
12912
12913 /* Decode CAN message */
12914 {
12915 {
12916 rtican_Signal_t CAN_Sgn;
12917
12918 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
12919 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12920 CAN_Sgn.UnsignedSgn &= 0x00000003;
12921 L4_MABX_B.SFunction1_o1_mf = ((real_T) CAN_Sgn.UnsignedSgn);
12922
12923 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
12924 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12925 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12926 CAN_Sgn.UnsignedSgn &= 0x00000003;
12927 L4_MABX_B.SFunction1_o2_j0 = ((real_T) CAN_Sgn.UnsignedSgn);
12928
12929 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
12930 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12931 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12932 CAN_Sgn.UnsignedSgn &= 0x00000003;
12933 L4_MABX_B.SFunction1_o3_ko = ((real_T) CAN_Sgn.UnsignedSgn);
12934
12935 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
12936 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12937 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12938 CAN_Sgn.UnsignedSgn &= 0x00000003;
12939 L4_MABX_B.SFunction1_o4_np = ((real_T) CAN_Sgn.UnsignedSgn);
12940
12941 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
12942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12943 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
12944 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12945 WheelBasedVehicleSpeed = 0.00390625 * ( ((real_T)
12946 CAN_Sgn.UnsignedSgn) );
12947
12948 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
12949 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12950 CAN_Sgn.UnsignedSgn &= 0x00000003;
12951 L4_MABX_B.SFunction1_o6_j = ((real_T) CAN_Sgn.UnsignedSgn);
12952
12953 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
12954 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12955 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12956 CAN_Sgn.UnsignedSgn &= 0x00000003;
12957 L4_MABX_B.SFunction1_o7_m = ((real_T) CAN_Sgn.UnsignedSgn);
12958
12959 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
12960 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12961 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12962 CAN_Sgn.UnsignedSgn &= 0x00000003;
12963 BrakeSwitch = ((real_T) CAN_Sgn.UnsignedSgn);
12964
12965 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
12966 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12967 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12968 CAN_Sgn.UnsignedSgn &= 0x00000003;
12969 L4_MABX_B.SFunction1_o9_oo = ((real_T) CAN_Sgn.UnsignedSgn);
12970
12971 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
12972 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12973 CAN_Sgn.UnsignedSgn &= 0x00000003;
12974 L4_MABX_B.SFunction1_o10_am = ((real_T) CAN_Sgn.UnsignedSgn);
12975
12976 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
12977 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12978 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12979 CAN_Sgn.UnsignedSgn &= 0x00000003;
12980 L4_MABX_B.SFunction1_o11_g = ((real_T) CAN_Sgn.UnsignedSgn);
12981
12982 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
12983 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12984 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12985 CAN_Sgn.UnsignedSgn &= 0x00000003;
12986 L4_MABX_B.SFunction1_o12_l = ((real_T) CAN_Sgn.UnsignedSgn);
12987
12988 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
12989 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12990 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12991 CAN_Sgn.UnsignedSgn &= 0x00000003;
12992 L4_MABX_B.SFunction1_o13_dw = ((real_T) CAN_Sgn.UnsignedSgn);
12993
12994 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
12995 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
12996 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12997 L4_MABX_B.SFunction1_o14_e = ((real_T) CAN_Sgn.UnsignedSgn);
12998
12999 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
13000 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
13001 CAN_Sgn.UnsignedSgn &= 0x0000001F;
13002 L4_MABX_B.SFunction1_o15_b = ((real_T) CAN_Sgn.UnsignedSgn);
13003
13004 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
13005 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
13006 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
13007 CAN_Sgn.UnsignedSgn &= 0x00000007;
13008 L4_MABX_B.SFunction1_o16_g = ((real_T) CAN_Sgn.UnsignedSgn);
13009
13010 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
13011 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13012 CAN_Sgn.UnsignedSgn &= 0x00000003;
13013 L4_MABX_B.SFunction1_o17_c = ((real_T) CAN_Sgn.UnsignedSgn);
13014
13015 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
13016 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13017 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
13018 CAN_Sgn.UnsignedSgn &= 0x00000003;
13019 L4_MABX_B.SFunction1_o18_e = ((real_T) CAN_Sgn.UnsignedSgn);
13020
13021 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
13022 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13023 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
13024 CAN_Sgn.UnsignedSgn &= 0x00000003;
13025 L4_MABX_B.SFunction1_o19_g = ((real_T) CAN_Sgn.UnsignedSgn);
13026
13027 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
13028 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
13029 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
13030 CAN_Sgn.UnsignedSgn &= 0x00000003;
13031 L4_MABX_B.SFunction1_o20_eq = ((real_T) CAN_Sgn.UnsignedSgn);
13032 }
13033 }
13034 } else {
13035 /* set RX status to 0 because no new message has arrived */
13036 L4_MABX_B.SFunction1_o21_j = 0.0;
13037 }
13038 }
13039 }
13040
13041 /* End of Constant: '<S424>/Constant' */
13042 /* End of Outputs for SubSystem: '<S500>/CCVS1_00' */
13043
13044 /* Outputs for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_00' incorporates:
13045 * EnablePort: '<S505>/Enable'
13046 */
13047 /* Constant: '<S426>/Constant' */
13048 if (L4_MABX_P.Constant_Value_az > 0.0) {
13049 /* S-Function (rti_commonblock): '<S505>/S-Function1' */
13050 /* This comment workarounds a code generation problem */
13051
13052 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248384 */
13053 {
13054 UInt32 *CAN_Msg;
13055 static dsfloat time_old = 0.0;
13056
13057 /* Read status and timestamp info (previous message) */
13058 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp !=
13059 time_old) {
13060 /* ... save timestamp info for the calculation of the RX status
13061 during the consecutive sample hit*/
13062 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].
13063 timestamp;
13064
13065 /* ... set the processed flag to one */
13066 L4_MABX_B.SFunction1_o5_a = 1.0;
13067 L4_MABX_B.SFunction1_o6_m0 = (real_T)
13068 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp;
13069 L4_MABX_B.SFunction1_o7_dv = (real_T)
13070 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].deltatime;
13071 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].data;
13072
13073 /* Decode CAN message */
13074 {
13075 {
13076 rtican_Signal_t CAN_Sgn;
13077
13078 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
13079 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13080 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13081 L4_MABX_B.SFunction1_o1_jp = ((real_T) CAN_Sgn.UnsignedSgn);
13082
13083 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
13084 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
13085 CAN_Sgn.UnsignedSgn &= 0x00000003;
13086 L4_MABX_B.SFunction1_o2_kj = ((real_T) CAN_Sgn.UnsignedSgn);
13087
13088 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
13089 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
13090 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
13091 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13092 L4_MABX_B.SFunction1_o3_ad = 0.0001 * ( ((real_T)
13093 CAN_Sgn.UnsignedSgn) );
13094
13095 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
13096 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13097 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13098 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13099 L4_MABX_B.SFunction1_o4_fm = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
13100 );
13101 }
13102 }
13103 } else {
13104 /* set RX status to 0 because no new message has arrived */
13105 L4_MABX_B.SFunction1_o5_a = 0.0;
13106 }
13107 }
13108 }
13109
13110 /* End of Outputs for SubSystem: '<S504>/COGSOGRapidUpdate_00' */
13111
13112 /* DataTypeConversion: '<S504>/Data Type Conversion8' */
13113 L4_MABX_B.RX_status_e = (L4_MABX_B.SFunction1_o5_a != 0.0);
13114
13115 /* Outputs for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_1' incorporates:
13116 * EnablePort: '<S506>/Enable'
13117 */
13118 /* Constant: '<S426>/Constant' */
13119 if (L4_MABX_P.Constant_Value_az > 0.0) {
13120 /* S-Function (rti_commonblock): '<S506>/S-Function1' */
13121 /* This comment workarounds a code generation problem */
13122
13123 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248385 */
13124 {
13125 UInt32 *CAN_Msg;
13126 static dsfloat time_old = 0.0;
13127
13128 /* Read status and timestamp info (previous message) */
13129 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp !=
13130 time_old) {
13131 /* ... save timestamp info for the calculation of the RX status
13132 during the consecutive sample hit*/
13133 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].
13134 timestamp;
13135
13136 /* ... set the processed flag to one */
13137 L4_MABX_B.SFunction1_o5_jr = 1.0;
13138 L4_MABX_B.SFunction1_o6_h2 = (real_T)
13139 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp;
13140 L4_MABX_B.SFunction1_o7_ka = (real_T)
13141 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].deltatime;
13142 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].data;
13143
13144 /* Decode CAN message */
13145 {
13146 {
13147 rtican_Signal_t CAN_Sgn;
13148
13149 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
13150 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
13151 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13152 L4_MABX_B.SFunction1_o1_n2 = ((real_T) CAN_Sgn.UnsignedSgn);
13153
13154 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
13155 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
13156 CAN_Sgn.UnsignedSgn &= 0x00000003;
13157 L4_MABX_B.SFunction1_o2_fc = ((real_T) CAN_Sgn.UnsignedSgn);
13158
13159 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
13160 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
13161 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
13162 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13163 L4_MABX_B.SFunction1_o3_o1 = 0.0001 * ( ((real_T)
13164 CAN_Sgn.UnsignedSgn) );
13165
13166 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
13167 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
13168 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
13169 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13170 L4_MABX_B.SFunction1_o4_kn = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
13171 );
13172 }
13173 }
13174 } else {
13175 /* set RX status to 0 because no new message has arrived */
13176 L4_MABX_B.SFunction1_o5_jr = 0.0;
13177 }
13178 }
13179 }
13180
13181 /* End of Outputs for SubSystem: '<S504>/COGSOGRapidUpdate_1' */
13182
13183 /* Switch: '<S504>/Switch' */
13184 if (L4_MABX_B.RX_status_e) {
13185 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_jp;
13186 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_kj;
13187 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_ad;
13188 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_fm;
13189 } else {
13190 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_n2;
13191 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_fc;
13192 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_o1;
13193 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_kn;
13194 }
13195
13196 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_100ms' */
13197
13198 /* RateTransition: '<S861>/TmpRTBAtHiddenBuf_InsertedFor_Rolling_15_counter_at_inport_0Inport1' */
13199 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
13200 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R = AutonomousOutputEnabled;
13201
13202 /* RateTransition: '<S879>/TmpRTBAtOperatorInport1' */
13203 L4_MABX_B.TmpRTBAtOperatorInport1 = AutonomousOutputEnabled;
13204
13205 /* RateTransition: '<S882>/TmpRTBAtOperatorInport1' */
13206 L4_MABX_B.TmpRTBAtOperatorInport1_j = AutonomousOutputEnabled;
13207
13208 /* RateTransition: '<S873>/TmpRTBAtOperatorInport1' */
13209 L4_MABX_B.TmpRTBAtOperatorInport1_b = AutonomousOutputEnabled;
13210
13211 /* RateTransition: '<S874>/TmpRTBAtOperatorInport1' */
13212 L4_MABX_B.TmpRTBAtOperatorInport1_n = AutonomousOutputEnabled;
13213
13214 /* RateTransition: '<S880>/TmpRTBAtOperatorInport1' */
13215 L4_MABX_B.TmpRTBAtOperatorInport1_d = AutonomousOutputEnabled;
13216
13217 /* RateTransition: '<S881>/TmpRTBAtOperatorInport1' */
13218 L4_MABX_B.TmpRTBAtOperatorInport1_h = AutonomousOutputEnabled;
13219 L4_MABX_B.Latitude__a = L4_MABX_B.Latitude_;
13220 L4_MABX_B.Longitude__i = L4_MABX_B.Longitude_;
13221 L4_MABX_B.TwoSpeedAxleSwitch_i = L4_MABX_B.SFunction1_o1_mf;
13222 L4_MABX_B.ParkingBrakeSwitch_o = L4_MABX_B.SFunction1_o2_j0;
13223 L4_MABX_B.CruiseCtrlPauseSwitch_p = L4_MABX_B.SFunction1_o3_ko;
13224 L4_MABX_B.ParkBrakeReleaseInhibitRq_f = L4_MABX_B.SFunction1_o4_np;
13225 L4_MABX_B.WheelBasedVehicleSpeed_bu = WheelBasedVehicleSpeed;
13226 L4_MABX_B.CruiseCtrlActive_b = L4_MABX_B.SFunction1_o6_j;
13227 L4_MABX_B.CruiseCtrlEnableSwitch_b0 = L4_MABX_B.SFunction1_o7_m;
13228 L4_MABX_B.BrakeSwitch_id = BrakeSwitch;
13229 L4_MABX_B.ClutchSwitch_f = L4_MABX_B.SFunction1_o9_oo;
13230 L4_MABX_B.CruiseCtrlSetSwitch_a = L4_MABX_B.SFunction1_o10_am;
13231 L4_MABX_B.CruiseCtrlCoastSwitch_n = L4_MABX_B.SFunction1_o11_g;
13232 L4_MABX_B.CruiseCtrlResumeSwitch_a = L4_MABX_B.SFunction1_o12_l;
13233 L4_MABX_B.CruiseCtrlAccelerateSwitch_g = L4_MABX_B.SFunction1_o13_dw;
13234 L4_MABX_B.CruiseCtrlSetSpeed_e = L4_MABX_B.SFunction1_o14_e;
13235 L4_MABX_B.PTOGovernorState_j = L4_MABX_B.SFunction1_o15_b;
13236 L4_MABX_B.CruiseCtrlStates_o = L4_MABX_B.SFunction1_o16_g;
13237 L4_MABX_B.EngIdleIncrementSwitch_a = L4_MABX_B.SFunction1_o17_c;
13238 L4_MABX_B.EngIdleDecrementSwitch_h = L4_MABX_B.SFunction1_o18_e;
13239 L4_MABX_B.EngTestModeSwitch_o = L4_MABX_B.SFunction1_o19_g;
13240 L4_MABX_B.EngShutdownOverrideSwitch_i = L4_MABX_B.SFunction1_o20_eq;
13241 L4_MABX_B.TwoSpeedAxleSwitch_ik = L4_MABX_B.SFunction1_o1_mf;
13242 L4_MABX_B.ParkingBrakeSwitch_ow = L4_MABX_B.SFunction1_o2_j0;
13243 L4_MABX_B.CruiseCtrlPauseSwitch_p5 = L4_MABX_B.SFunction1_o3_ko;
13244 L4_MABX_B.ParkBrakeReleaseInhibitRq_fg = L4_MABX_B.SFunction1_o4_np;
13245 L4_MABX_B.WheelBasedVehicleSpeed_buu = WheelBasedVehicleSpeed;
13246 L4_MABX_B.CruiseCtrlActive_bu = L4_MABX_B.SFunction1_o6_j;
13247 L4_MABX_B.CruiseCtrlEnableSwitch_b0a = L4_MABX_B.SFunction1_o7_m;
13248 L4_MABX_B.BrakeSwitch_id0 = BrakeSwitch;
13249 L4_MABX_B.ClutchSwitch_fb = L4_MABX_B.SFunction1_o9_oo;
13250 L4_MABX_B.CruiseCtrlSetSwitch_a4 = L4_MABX_B.SFunction1_o10_am;
13251 L4_MABX_B.CruiseCtrlCoastSwitch_ng = L4_MABX_B.SFunction1_o11_g;
13252 L4_MABX_B.CruiseCtrlResumeSwitch_af = L4_MABX_B.SFunction1_o12_l;
13253 L4_MABX_B.CruiseCtrlAccelerateSwitch_gi = L4_MABX_B.SFunction1_o13_dw;
13254 L4_MABX_B.CruiseCtrlSetSpeed_ed = L4_MABX_B.SFunction1_o14_e;
13255 L4_MABX_B.PTOGovernorState_jz = L4_MABX_B.SFunction1_o15_b;
13256 L4_MABX_B.CruiseCtrlStates_ob = L4_MABX_B.SFunction1_o16_g;
13257 L4_MABX_B.EngIdleIncrementSwitch_a4 = L4_MABX_B.SFunction1_o17_c;
13258 L4_MABX_B.EngIdleDecrementSwitch_ho = L4_MABX_B.SFunction1_o18_e;
13259 L4_MABX_B.EngTestModeSwitch_ot = L4_MABX_B.SFunction1_o19_g;
13260 L4_MABX_B.EngShutdownOverrideSwitch_ie = L4_MABX_B.SFunction1_o20_eq;
13261 L4_MABX_B.SID_fa = L4_MABX_B.SID;
13262 L4_MABX_B.COGReference_c = L4_MABX_B.COGReference;
13263 L4_MABX_B.CourseOverGround_i = L4_MABX_B.CourseOverGround;
13264 L4_MABX_B.SpeedOverGround_l = L4_MABX_B.SpeedOverGround;
13265 L4_MABX_B.ASREngCtrlActive = L4_MABX_B.SFunction1_o1_l2;
13266 L4_MABX_B.ASRBrakeCtrlActive = L4_MABX_B.SFunction1_o2_cu;
13267 L4_MABX_B.AntiLockBrakingActive = L4_MABX_B.SFunction1_o3_ln;
13268 L4_MABX_B.EBSBrakeSwitch_e = L4_MABX_B.SFunction1_o4_ow;
13269 L4_MABX_B.BrakePedalPos = L4_MABX_B.SFunction1_o5_lu;
13270 L4_MABX_B.ABSOffroadSwitch = L4_MABX_B.SFunction1_o6_ho;
13271 L4_MABX_B.ASROffroadSwitch = L4_MABX_B.SFunction1_o7_as;
13272 L4_MABX_B.ASRHillHolderSwitch = L4_MABX_B.SFunction1_o8_f;
13273 L4_MABX_B.TractionCtrlOverrideSwitch = L4_MABX_B.SFunction1_o9_o;
13274 L4_MABX_B.AccelInterlockSwitch = L4_MABX_B.SFunction1_o10_b;
13275 L4_MABX_B.EngDerateSwitch = L4_MABX_B.SFunction1_o11_b;
13276 L4_MABX_B.EngAuxShutdownSwitch = L4_MABX_B.SFunction1_o12_m;
13277 L4_MABX_B.RemoteAccelEnableSwitch = L4_MABX_B.SFunction1_o13_b;
13278 L4_MABX_B.EngRetarderSelection = L4_MABX_B.SFunction1_o14_a;
13279 L4_MABX_B.ABSFullyOperational = L4_MABX_B.SFunction1_o15_m;
13280 L4_MABX_B.EBSRedWarningSignal = L4_MABX_B.SFunction1_o16_l;
13281 L4_MABX_B.ABS_EBSAmberWarningSignal = L4_MABX_B.SFunction1_o17_g;
13282 L4_MABX_B.ATC_ASRInformationSignal = L4_MABX_B.SFunction1_o18_k;
13283 L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl = L4_MABX_B.SFunction1_o19_m;
13284 L4_MABX_B.HaltBrakeSwitch = L4_MABX_B.SFunction1_o20_o;
13285 L4_MABX_B.TrailerABSStatus = L4_MABX_B.SFunction1_o21_m;
13286 L4_MABX_B.TrctrMntdTrilerABSWarningSignal = L4_MABX_B.SFunction1_o22_m;
13287 }
13288
13289 /* End of Outputs for SubSystem: '<S824>/CAN_TX_100ms' */
13290
13291 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_10ms' */
13292
13293 /* DataTypeConversion: '<S926>/Data Type Conversion4' */
13294 L4_MABX_B.DataTypeConversion4_p = L4_MABX_B.Diff;
13295
13296 /* DataTypeConversion: '<S915>/Data Type Conversion' incorporates:
13297 * Constant: '<S829>/CANT_ACCS_E4_CHANNEL_APV'
13298 */
13299 L4_MABX_B.DataTypeConversion_mw = (uint8_T)
13300 L4_MABX_P.CANT_ACCS_E4_CHANNEL_APV_Value;
13301
13302 /* S-Function (sfix_bitop): '<S923>/Operator' */
13303 L4_MABX_B.Operator_on = (uint8_T)(L4_MABX_B.DataTypeConversion_mw &
13304 L4_MABX_P.Operator_BitMask_c);
13305
13306 /* DataTypeConversion: '<S923>/DataType' */
13307 L4_MABX_B.DataType_i = L4_MABX_B.Operator_on;
13308
13309 /* ArithShift: '<S915>/Shift_Arithmetic 2' */
13310 L4_MABX_B.Shift_Arithmetic2_g = ldexp(L4_MABX_B.DataType_i, (-3));
13311
13312 /* DataTypeConversion: '<S915>/Data Type Conversion5' */
13313 L4_MABX_B.DataTypeConversion5_nd = (L4_MABX_B.Shift_Arithmetic2_g != 0.0);
13314
13315 /* Outputs for Enabled SubSystem: '<S926>/ACCS' incorporates:
13316 * EnablePort: '<S927>/Enable'
13317 */
13318 if (L4_MABX_B.DataTypeConversion5_nd) {
13319 /* S-Function (rti_commonblock): '<S927>/S-Function1' */
13320 /* This comment workarounds a code generation problem */
13321
13322 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
13323 {
13324 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13325
13326 Float32 delayTime = 0.0;
13327
13328 /* ... Read status and timestamp info (previous message) */
13329 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]);
13330
13331 /* Convert timestamp */
13332 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed) {
13333 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp =
13334 rtk_dsts_time_to_simtime_convert
13335 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp);
13336 }
13337
13338 /* Messages with timestamp zero have been received in pause/stop state
13339 and must not be handled.
13340 */
13341 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp > 0.0) {
13342 L4_MABX_B.SFunction1_o1_ex = (real_T)
13343 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed;
13344 L4_MABX_B.SFunction1_o2_ou = (real_T)
13345 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp;
13346 L4_MABX_B.SFunction1_o3_ky = (real_T)
13347 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->deltatime;
13348 L4_MABX_B.SFunction1_o4_km = (real_T)
13349 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->delaytime;
13350 }
13351
13352 /* ... Encode Simulink signals of TX and RM blocks*/
13353 {
13354 rtican_Signal_t CAN_Sgn;
13355
13356 /* ...... "LongitudinalAccelerationExRange" (16|16, standard signal, unsigned int, little endian) */
13357 /* Add or substract 0.5 in order to round to nearest integer */
13358 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_p -
13359 ( -320 ) ) / 0.01 + 0.5);
13360 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13361 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13362 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
13363 }
13364
13365 /* mask unused bits with '1' */
13366 CAN_Msg[0] |= 0xFF;
13367 CAN_Msg[1] |= 0xFF;
13368 CAN_Msg[4] |= 0xFF;
13369 CAN_Msg[5] |= 0xFF;
13370 CAN_Msg[6] |= 0xFF;
13371 CAN_Msg[7] |= 0xFF;
13372
13373 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13374 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4], 8,
13375 &(CAN_Msg[0]), delayTime);
13376 }
13377 }
13378
13379 /* End of Outputs for SubSystem: '<S926>/ACCS' */
13380
13381 /* S-Function (sfix_bitop): '<S920>/Operator' */
13382 L4_MABX_B.Operator_os = (uint8_T)(L4_MABX_B.DataTypeConversion_mw &
13383 L4_MABX_P.Operator_BitMask_ks);
13384
13385 /* DataTypeConversion: '<S920>/DataType' */
13386 L4_MABX_B.DataType_pz = L4_MABX_B.Operator_os;
13387
13388 /* S-Function (sfix_bitop): '<S921>/Operator' */
13389 L4_MABX_B.Operator_a3 = (uint8_T)(L4_MABX_B.DataTypeConversion_mw &
13390 L4_MABX_P.Operator_BitMask_d5);
13391
13392 /* DataTypeConversion: '<S921>/DataType' */
13393 L4_MABX_B.DataType_d = L4_MABX_B.Operator_a3;
13394
13395 /* S-Function (sfix_bitop): '<S922>/Operator' */
13396 L4_MABX_B.Operator_i4 = (uint8_T)(L4_MABX_B.DataTypeConversion_mw &
13397 L4_MABX_P.Operator_BitMask_e3);
13398
13399 /* DataTypeConversion: '<S922>/DataType' */
13400 L4_MABX_B.DataType_j = L4_MABX_B.Operator_i4;
13401
13402 /* S-Function (sfix_bitop): '<S924>/Operator' */
13403 L4_MABX_B.Operator_lx = (uint8_T)(L4_MABX_B.DataTypeConversion_mw &
13404 L4_MABX_P.Operator_BitMask_nr);
13405
13406 /* DataTypeConversion: '<S924>/DataType' */
13407 L4_MABX_B.DataType_g = L4_MABX_B.Operator_lx;
13408
13409 /* S-Function (sfix_bitop): '<S925>/Operator' */
13410 L4_MABX_B.Operator_he = (uint8_T)(L4_MABX_B.DataTypeConversion_mw &
13411 L4_MABX_P.Operator_BitMask_ln);
13412
13413 /* DataTypeConversion: '<S925>/DataType' */
13414 L4_MABX_B.DataType_c2 = L4_MABX_B.Operator_he;
13415
13416 /* DataTypeConversion: '<S915>/Data Type Conversion2' */
13417 L4_MABX_B.DataTypeConversion2_ko = (L4_MABX_B.DataType_pz != 0);
13418
13419 /* ArithShift: '<S915>/Shift_Arithmetic ' */
13420 L4_MABX_B.Shift_Arithmetic_i = ldexp(L4_MABX_B.DataType_d, (-1));
13421
13422 /* DataTypeConversion: '<S915>/Data Type Conversion3' */
13423 L4_MABX_B.DataTypeConversion3_fa = (L4_MABX_B.Shift_Arithmetic_i != 0.0);
13424
13425 /* ArithShift: '<S915>/Shift_Arithmetic 1' */
13426 L4_MABX_B.Shift_Arithmetic1_b = ldexp(L4_MABX_B.DataType_j, (-2));
13427
13428 /* DataTypeConversion: '<S915>/Data Type Conversion4' */
13429 L4_MABX_B.DataTypeConversion4_pp = (L4_MABX_B.Shift_Arithmetic1_b != 0.0);
13430
13431 /* ArithShift: '<S915>/Shift_Arithmetic 3' */
13432 L4_MABX_B.Shift_Arithmetic3_e = ldexp(L4_MABX_B.DataType_g, (-4));
13433
13434 /* DataTypeConversion: '<S915>/Data Type Conversion6' */
13435 L4_MABX_B.DataTypeConversion6_pl = (L4_MABX_B.Shift_Arithmetic3_e != 0.0);
13436
13437 /* ArithShift: '<S915>/Shift_Arithmetic 4' */
13438 L4_MABX_B.Shift_Arithmetic4_b = ldexp(L4_MABX_B.DataType_c2, (-5));
13439
13440 /* DataTypeConversion: '<S915>/Data Type Conversion7' */
13441 L4_MABX_B.DataTypeConversion7_le = (L4_MABX_B.Shift_Arithmetic4_b != 0.0);
13442
13443 /* DataTypeConversion: '<S934>/Data Type Conversion1' */
13444 L4_MABX_B.DataTypeConversion1_ff = L4_MABX_B.SFunction1_o2_ec;
13445
13446 /* DataTypeConversion: '<S934>/Data Type Conversion2' */
13447 L4_MABX_B.DataTypeConversion2_ig = L4_MABX_B.SFunction1_o3_ir;
13448
13449 /* DataTypeConversion: '<S934>/Data Type Conversion3' */
13450 L4_MABX_B.DataTypeConversion3_k = L4_MABX_B.SFunction1_o4_ga;
13451
13452 /* DataTypeConversion: '<S934>/Data Type Conversion4' */
13453 L4_MABX_B.DataTypeConversion4_h = L4_MABX_B.SFunction1_o1_jh;
13454
13455 /* DataTypeConversion: '<S934>/Data Type Conversion5' */
13456 L4_MABX_B.DataTypeConversion5_h = L4_MABX_B.SFunction1_o5_dc;
13457
13458 /* DataTypeConversion: '<S934>/Data Type Conversion6' */
13459 L4_MABX_B.DataTypeConversion6_b = L4_MABX_B.SFunction1_o6_e1;
13460
13461 /* DataTypeConversion: '<S934>/Data Type Conversion7' */
13462 L4_MABX_B.DataTypeConversion7_j = L4_MABX_B.SFunction1_o7_dh;
13463
13464 /* DataTypeConversion: '<S934>/Data Type Conversion8' */
13465 L4_MABX_B.DataTypeConversion8_e = L4_MABX_B.SFunction1_o8_el;
13466
13467 /* DataTypeConversion: '<S916>/Data Type Conversion' incorporates:
13468 * Constant: '<S829>/CANT_EEC1_00_CHANNEL_APV'
13469 */
13470 L4_MABX_B.DataTypeConversion_do = (uint8_T)
13471 L4_MABX_P.CANT_EEC1_00_CHANNEL_APV_Value;
13472
13473 /* S-Function (sfix_bitop): '<S931>/Operator' */
13474 L4_MABX_B.Operator_a3c = (uint8_T)(L4_MABX_B.DataTypeConversion_do &
13475 L4_MABX_P.Operator_BitMask_bv);
13476
13477 /* DataTypeConversion: '<S931>/DataType' */
13478 L4_MABX_B.DataType_f = L4_MABX_B.Operator_a3c;
13479
13480 /* ArithShift: '<S916>/Shift_Arithmetic 2' */
13481 L4_MABX_B.Shift_Arithmetic2_p = ldexp(L4_MABX_B.DataType_f, (-3));
13482
13483 /* DataTypeConversion: '<S916>/Data Type Conversion5' */
13484 L4_MABX_B.DataTypeConversion5_az = (L4_MABX_B.Shift_Arithmetic2_p != 0.0);
13485
13486 /* Outputs for Enabled SubSystem: '<S934>/EEC1_00' incorporates:
13487 * EnablePort: '<S936>/Enable'
13488 */
13489 if (L4_MABX_B.DataTypeConversion5_az) {
13490 /* S-Function (rti_commonblock): '<S936>/S-Function1' */
13491 /* This comment workarounds a code generation problem */
13492
13493 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13494 {
13495 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13496
13497 Float32 delayTime = 0.0;
13498
13499 /* ... Read status and timestamp info (previous message) */
13500 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]);
13501
13502 /* Convert timestamp */
13503 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed) {
13504 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp =
13505 rtk_dsts_time_to_simtime_convert
13506 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp);
13507 }
13508
13509 /* Messages with timestamp zero have been received in pause/stop state
13510 and must not be handled.
13511 */
13512 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp > 0.0) {
13513 L4_MABX_B.SFunction1_o1_hh = (real_T)
13514 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed;
13515 L4_MABX_B.SFunction1_o2_p = (real_T)
13516 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp;
13517 L4_MABX_B.SFunction1_o3_m = (real_T)
13518 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->deltatime;
13519 L4_MABX_B.SFunction1_o4_h = (real_T)
13520 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->delaytime;
13521 }
13522
13523 /* ... Encode Simulink signals of TX and RM blocks*/
13524 {
13525 rtican_Signal_t CAN_Sgn;
13526
13527 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13528 /* Add or substract 0.5 in order to round to nearest integer */
13529 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_h ) +
13530 0.5);
13531 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13532 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13533
13534 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13535 /* Add or substract 0.5 in order to round to nearest integer */
13536 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ff - ( 0
13537 ) ) / 0.125 + 0.5);
13538 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13539 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13540 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13541
13542 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13543 /* Add or substract 0.5 in order to round to nearest integer */
13544 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_ig -
13545 ( -125 ) + 0.5);
13546 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13547 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13548
13549 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13550 /* Add or substract 0.5 in order to round to nearest integer */
13551 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_k - ( -125
13552 ) + 0.5);
13553 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13554 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13555
13556 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13557 /* Add or substract 0.5 in order to round to nearest integer */
13558 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_h - ( 0 )
13559 ) / 0.125 + 0.5);
13560 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13561 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13562 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13563
13564 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13565 /* Add or substract 0.5 in order to round to nearest integer */
13566 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_b ) +
13567 0.5);
13568 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13569 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13570
13571 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13572 /* Add or substract 0.5 in order to round to nearest integer */
13573 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_j ) +
13574 0.5);
13575 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13576 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13577
13578 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13579 /* Add or substract 0.5 in order to round to nearest integer */
13580 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_e - ( -125
13581 ) + 0.5);
13582 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13583 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13584 }
13585
13586 /* mask unused bits with '1' */
13587 CAN_Msg[6] |= 0xF0;
13588
13589 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13590 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400], 8,
13591 &(CAN_Msg[0]), delayTime);
13592 }
13593 }
13594
13595 /* End of Outputs for SubSystem: '<S934>/EEC1_00' */
13596
13597 /* DataTypeConversion: '<S935>/Data Type Conversion1' */
13598 L4_MABX_B.DataTypeConversion1_i = L4_MABX_B.SFunction1_o2_ec;
13599
13600 /* DataTypeConversion: '<S935>/Data Type Conversion2' */
13601 L4_MABX_B.DataTypeConversion2_nv = L4_MABX_B.SFunction1_o3_ir;
13602
13603 /* DataTypeConversion: '<S935>/Data Type Conversion3' */
13604 L4_MABX_B.DataTypeConversion3_i = L4_MABX_B.SFunction1_o4_ga;
13605
13606 /* DataTypeConversion: '<S935>/Data Type Conversion4' */
13607 L4_MABX_B.DataTypeConversion4_m = L4_MABX_B.SFunction1_o1_jh;
13608
13609 /* DataTypeConversion: '<S935>/Data Type Conversion5' */
13610 L4_MABX_B.DataTypeConversion5_e = L4_MABX_B.SFunction1_o5_dc;
13611
13612 /* DataTypeConversion: '<S935>/Data Type Conversion6' */
13613 L4_MABX_B.DataTypeConversion6_o = L4_MABX_B.SFunction1_o6_e1;
13614
13615 /* DataTypeConversion: '<S935>/Data Type Conversion7' */
13616 L4_MABX_B.DataTypeConversion7_g = L4_MABX_B.SFunction1_o7_dh;
13617
13618 /* DataTypeConversion: '<S935>/Data Type Conversion8' */
13619 L4_MABX_B.DataTypeConversion8_d = L4_MABX_B.SFunction1_o8_el;
13620
13621 /* S-Function (sfix_bitop): '<S932>/Operator' */
13622 L4_MABX_B.Operator_gb = (uint8_T)(L4_MABX_B.DataTypeConversion_do &
13623 L4_MABX_P.Operator_BitMask_bi);
13624
13625 /* DataTypeConversion: '<S932>/DataType' */
13626 L4_MABX_B.DataType_a = L4_MABX_B.Operator_gb;
13627
13628 /* ArithShift: '<S916>/Shift_Arithmetic 3' */
13629 L4_MABX_B.Shift_Arithmetic3_j = ldexp(L4_MABX_B.DataType_a, (-4));
13630
13631 /* DataTypeConversion: '<S916>/Data Type Conversion6' */
13632 L4_MABX_B.DataTypeConversion6_mw = (L4_MABX_B.Shift_Arithmetic3_j != 0.0);
13633
13634 /* Outputs for Enabled SubSystem: '<S935>/EEC1_00' incorporates:
13635 * EnablePort: '<S937>/Enable'
13636 */
13637 if (L4_MABX_B.DataTypeConversion6_mw) {
13638 /* S-Function (rti_commonblock): '<S937>/S-Function1' */
13639 /* This comment workarounds a code generation problem */
13640
13641 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13642 {
13643 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13644
13645 Float32 delayTime = 0.0;
13646
13647 /* ... Read status and timestamp info (previous message) */
13648 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]);
13649
13650 /* Convert timestamp */
13651 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed) {
13652 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp =
13653 rtk_dsts_time_to_simtime_convert
13654 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp);
13655 }
13656
13657 /* Messages with timestamp zero have been received in pause/stop state
13658 and must not be handled.
13659 */
13660 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp > 0.0) {
13661 L4_MABX_B.SFunction1_o1_n = (real_T)
13662 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed;
13663 L4_MABX_B.SFunction1_o2_b = (real_T)
13664 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp;
13665 L4_MABX_B.SFunction1_o3_cb = (real_T)
13666 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->deltatime;
13667 L4_MABX_B.SFunction1_o4_lb = (real_T)
13668 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->delaytime;
13669 }
13670
13671 /* ... Encode Simulink signals of TX and RM blocks*/
13672 {
13673 rtican_Signal_t CAN_Sgn;
13674
13675 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13676 /* Add or substract 0.5 in order to round to nearest integer */
13677 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_m ) +
13678 0.5);
13679 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13680 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13681
13682 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13683 /* Add or substract 0.5 in order to round to nearest integer */
13684 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_i - ( 0 )
13685 ) / 0.125 + 0.5);
13686 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13687 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13688 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13689
13690 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13691 /* Add or substract 0.5 in order to round to nearest integer */
13692 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_nv -
13693 ( -125 ) + 0.5);
13694 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13695 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13696
13697 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13698 /* Add or substract 0.5 in order to round to nearest integer */
13699 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_i - ( -125
13700 ) + 0.5);
13701 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13702 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13703
13704 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13705 /* Add or substract 0.5 in order to round to nearest integer */
13706 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_e - ( 0 )
13707 ) / 0.125 + 0.5);
13708 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13709 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13710 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13711
13712 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13713 /* Add or substract 0.5 in order to round to nearest integer */
13714 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_o ) +
13715 0.5);
13716 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13717 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13718
13719 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13720 /* Add or substract 0.5 in order to round to nearest integer */
13721 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_g ) +
13722 0.5);
13723 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13724 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13725
13726 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13727 /* Add or substract 0.5 in order to round to nearest integer */
13728 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_d - ( -125
13729 ) + 0.5);
13730 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13731 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13732 }
13733
13734 /* mask unused bits with '1' */
13735 CAN_Msg[6] |= 0xF0;
13736
13737 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13738 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400], 8,
13739 &(CAN_Msg[0]), delayTime);
13740 }
13741 }
13742
13743 /* End of Outputs for SubSystem: '<S935>/EEC1_00' */
13744
13745 /* S-Function (sfix_bitop): '<S928>/Operator' */
13746 L4_MABX_B.Operator_bq = (uint8_T)(L4_MABX_B.DataTypeConversion_do &
13747 L4_MABX_P.Operator_BitMask_bc);
13748
13749 /* DataTypeConversion: '<S928>/DataType' */
13750 L4_MABX_B.DataType_fn = L4_MABX_B.Operator_bq;
13751
13752 /* S-Function (sfix_bitop): '<S929>/Operator' */
13753 L4_MABX_B.Operator_jr = (uint8_T)(L4_MABX_B.DataTypeConversion_do &
13754 L4_MABX_P.Operator_BitMask_a);
13755
13756 /* DataTypeConversion: '<S929>/DataType' */
13757 L4_MABX_B.DataType_o = L4_MABX_B.Operator_jr;
13758
13759 /* S-Function (sfix_bitop): '<S930>/Operator' */
13760 L4_MABX_B.Operator_br = (uint8_T)(L4_MABX_B.DataTypeConversion_do &
13761 L4_MABX_P.Operator_BitMask_nc);
13762
13763 /* DataTypeConversion: '<S930>/DataType' */
13764 L4_MABX_B.DataType_gc = L4_MABX_B.Operator_br;
13765
13766 /* S-Function (sfix_bitop): '<S933>/Operator' */
13767 L4_MABX_B.Operator_au = (uint8_T)(L4_MABX_B.DataTypeConversion_do &
13768 L4_MABX_P.Operator_BitMask_kz);
13769
13770 /* DataTypeConversion: '<S933>/DataType' */
13771 L4_MABX_B.DataType_n = L4_MABX_B.Operator_au;
13772
13773 /* DataTypeConversion: '<S916>/Data Type Conversion2' */
13774 L4_MABX_B.DataTypeConversion2_ed = (L4_MABX_B.DataType_fn != 0);
13775
13776 /* ArithShift: '<S916>/Shift_Arithmetic ' */
13777 L4_MABX_B.Shift_Arithmetic_n = ldexp(L4_MABX_B.DataType_o, (-1));
13778
13779 /* DataTypeConversion: '<S916>/Data Type Conversion3' */
13780 L4_MABX_B.DataTypeConversion3_dl = (L4_MABX_B.Shift_Arithmetic_n != 0.0);
13781
13782 /* ArithShift: '<S916>/Shift_Arithmetic 1' */
13783 L4_MABX_B.Shift_Arithmetic1_i = ldexp(L4_MABX_B.DataType_gc, (-2));
13784
13785 /* DataTypeConversion: '<S916>/Data Type Conversion4' */
13786 L4_MABX_B.DataTypeConversion4_a2 = (L4_MABX_B.Shift_Arithmetic1_i != 0.0);
13787
13788 /* ArithShift: '<S916>/Shift_Arithmetic 4' */
13789 L4_MABX_B.Shift_Arithmetic4_m = ldexp(L4_MABX_B.DataType_n, (-5));
13790
13791 /* DataTypeConversion: '<S916>/Data Type Conversion7' */
13792 L4_MABX_B.DataTypeConversion7_d = (L4_MABX_B.Shift_Arithmetic4_m != 0.0);
13793
13794 /* DataTypeConversion: '<S919>/Data Type Conversion' */
13795 L4_MABX_B.DataTypeConversion_da = AutonomousOutputEnabled;
13796
13797 /* Switch: '<S953>/Switch' incorporates:
13798 * Constant: '<S953>/Constant'
13799 * Constant: '<S953>/Constant1'
13800 */
13801 if (L4_MABX_B.DataTypeConversion_da != 0) {
13802 L4_MABX_B.Switch_d = L4_MABX_P.Constant_Value_ly;
13803 } else {
13804 L4_MABX_B.Switch_d = L4_MABX_P.Constant1_Value_jz;
13805 }
13806
13807 /* End of Switch: '<S953>/Switch' */
13808
13809 /* DataTypeConversion: '<S951>/Data Type Conversion' */
13810 L4_MABX_B.DataTypeConversion_o2 = L4_MABX_B.Switch_d;
13811
13812 /* RelationalOperator: '<S970>/Operator' incorporates:
13813 * Constant: '<S952>/Constant'
13814 * Constant: '<S952>/Constant6'
13815 */
13816 L4_MABX_B.Operator_c4 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13817 L4_MABX_P.Constant_Value_eu);
13818
13819 /* Outputs for Enabled SubSystem: '<S952>/DEFAULT_TRQ_CTRL_MODE' */
13820 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_c4, &L4_MABX_B.Merge,
13821 &L4_MABX_P.DEFAULT_TRQ_CTRL_MODE);
13822
13823 /* End of Outputs for SubSystem: '<S952>/DEFAULT_TRQ_CTRL_MODE' */
13824
13825 /* Switch: '<S969>/Switch' incorporates:
13826 * Constant: '<S969>/zero'
13827 */
13828 if (L4_MABX_B.DataTypeConversion_da != 0) {
13829 /* MultiPortSwitch: '<S969>/Multiport_Switch' incorporates:
13830 * Constant: '<S969>/Constant1'
13831 * Constant: '<S969>/Constant7'
13832 */
13833 switch (PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV) {
13834 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_SW_EMULATION:
13835 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13836 break;
13837
13838 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION:
13839 L4_MABX_B.Multiport_Switch = L4_MABX_B.Subtract_c1;
13840 break;
13841
13842 default:
13843 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13844 break;
13845 }
13846
13847 /* End of MultiPortSwitch: '<S969>/Multiport_Switch' */
13848 L4_MABX_B.Switch = L4_MABX_B.Multiport_Switch;
13849 } else {
13850 L4_MABX_B.Switch = L4_MABX_P.zero_Value_d;
13851 }
13852
13853 /* End of Switch: '<S969>/Switch' */
13854
13855 /* RelationalOperator: '<S979>/Operator_MX' incorporates:
13856 * Constant: '<S979>/MX'
13857 */
13858 L4_MABX_B.Operator_MX = (L4_MABX_B.Switch > L4_MABX_P.MX_Value);
13859
13860 /* RelationalOperator: '<S979>/Operator_MN' incorporates:
13861 * Constant: '<S979>/MN'
13862 */
13863 L4_MABX_B.Operator_MN = (L4_MABX_B.Switch < L4_MABX_P.MN_Value);
13864
13865 /* Switch: '<S979>/Switch2' incorporates:
13866 * Constant: '<S979>/MX'
13867 * Switch: '<S979>/Switch1'
13868 */
13869 if (L4_MABX_B.Operator_MX) {
13870 L4_MABX_B.Switch2 = L4_MABX_P.MX_Value;
13871 } else {
13872 if (L4_MABX_B.Operator_MN) {
13873 /* Switch: '<S979>/Switch1' incorporates:
13874 * Constant: '<S979>/MN'
13875 */
13876 L4_MABX_B.Switch1 = L4_MABX_P.MN_Value;
13877 } else {
13878 /* Switch: '<S979>/Switch1' */
13879 L4_MABX_B.Switch1 = L4_MABX_B.Switch;
13880 }
13881
13882 L4_MABX_B.Switch2 = L4_MABX_B.Switch1;
13883 }
13884
13885 /* End of Switch: '<S979>/Switch2' */
13886
13887 /* DataTypeConversion: '<S979>/DataType' */
13888 L4_MABX_B.DataType_l3 = L4_MABX_B.Switch2;
13889
13890 /* RelationalOperator: '<S971>/Operator' incorporates:
13891 * Constant: '<S952>/Constant1'
13892 * Constant: '<S952>/Constant6'
13893 */
13894 L4_MABX_B.Operator_jk = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13895 L4_MABX_P.Constant1_Value_m0);
13896
13897 /* Outputs for Enabled SubSystem: '<S952>/POSITION_CONTROL_MODE' incorporates:
13898 * EnablePort: '<S980>/Enable'
13899 */
13900 if (L4_MABX_B.Operator_jk) {
13901 /* Product: '<S980>/Product' incorporates:
13902 * Constant: '<S980>/Constant'
13903 */
13904 L4_MABX_B.Product = L4_MABX_B.DataType_l3 * L4_MABX_P.Constant_Value_oa;
13905
13906 /* DataTypeConversion: '<S980>/Data Type Conversion' */
13907 PositionFinalLimited = floor(L4_MABX_B.Product);
13908 if (PositionFinalLimited < 2.147483648E+9) {
13909 if (PositionFinalLimited >= -2.147483648E+9) {
13910 i = (int32_T)PositionFinalLimited;
13911 } else {
13912 i = MIN_int32_T;
13913 }
13914 } else {
13915 i = MAX_int32_T;
13916 }
13917
13918 L4_MABX_B.Merge = i;
13919
13920 /* End of DataTypeConversion: '<S980>/Data Type Conversion' */
13921 }
13922
13923 /* End of Outputs for SubSystem: '<S952>/POSITION_CONTROL_MODE' */
13924
13925 /* RelationalOperator: '<S972>/Operator' incorporates:
13926 * Constant: '<S952>/Constant2'
13927 * Constant: '<S952>/Constant6'
13928 */
13929 L4_MABX_B.Operator_k5 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13930 L4_MABX_P.Constant2_Value_j3);
13931
13932 /* Outputs for Enabled SubSystem: '<S952>/EXT_TRQ_CTRL_MODE_A' */
13933 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_k5, &L4_MABX_B.Merge,
13934 &L4_MABX_P.EXT_TRQ_CTRL_MODE_A);
13935
13936 /* End of Outputs for SubSystem: '<S952>/EXT_TRQ_CTRL_MODE_A' */
13937
13938 /* RelationalOperator: '<S973>/Operator' incorporates:
13939 * Constant: '<S952>/Constant3'
13940 * Constant: '<S952>/Constant6'
13941 */
13942 L4_MABX_B.Operator_cke = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13943 L4_MABX_P.Constant3_Value_o);
13944
13945 /* Outputs for Enabled SubSystem: '<S952>/ALL_CTRL_DISABLED' */
13946 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_cke, &L4_MABX_B.Merge,
13947 &L4_MABX_P.ALL_CTRL_DISABLED);
13948
13949 /* End of Outputs for SubSystem: '<S952>/ALL_CTRL_DISABLED' */
13950
13951 /* RelationalOperator: '<S974>/Operator' incorporates:
13952 * Constant: '<S952>/Constant4'
13953 * Constant: '<S952>/Constant6'
13954 */
13955 L4_MABX_B.Operator_c4a = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13956 L4_MABX_P.Constant4_Value_ku);
13957
13958 /* Outputs for Enabled SubSystem: '<S952>/EXT_TRQ_CTRL_MODE_B' */
13959 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_c4a, &L4_MABX_B.Merge,
13960 &L4_MABX_P.EXT_TRQ_CTRL_MODE_B);
13961
13962 /* End of Outputs for SubSystem: '<S952>/EXT_TRQ_CTRL_MODE_B' */
13963
13964 /* RelationalOperator: '<S975>/Operator' incorporates:
13965 * Constant: '<S952>/Constant5'
13966 * Constant: '<S952>/Constant6'
13967 */
13968 L4_MABX_B.Operator_dz4 = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13969 L4_MABX_P.Constant5_Value_h);
13970
13971 /* Outputs for Enabled SubSystem: '<S952>/EXT_TRQ_CTRL_MODE_C' */
13972 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_dz4, &L4_MABX_B.Merge,
13973 &L4_MABX_P.EXT_TRQ_CTRL_MODE_C);
13974
13975 /* End of Outputs for SubSystem: '<S952>/EXT_TRQ_CTRL_MODE_C' */
13976
13977 /* DataTypeConversion: '<S951>/Data Type Conversion2' */
13978 L4_MABX_B.DataTypeConversion2_b = (uint32_T)L4_MABX_B.Merge;
13979
13980 /* S-Function (sfix_bitop): '<S956>/Operator' */
13981 L4_MABX_B.Operator_l = L4_MABX_B.DataTypeConversion2_b &
13982 L4_MABX_P.Operator_BitMask_mz;
13983
13984 /* DataTypeConversion: '<S956>/DataType' */
13985 tmp = L4_MABX_B.Operator_l;
13986 if (tmp > 255U) {
13987 tmp = 255U;
13988 }
13989
13990 L4_MABX_B.DataType_la = (uint8_T)tmp;
13991
13992 /* End of DataTypeConversion: '<S956>/DataType' */
13993
13994 /* S-Function (sfix_bitop): '<S957>/Operator' */
13995 L4_MABX_B.Operator_m = L4_MABX_B.DataTypeConversion2_b &
13996 L4_MABX_P.Operator_BitMask_gn;
13997
13998 /* DataTypeConversion: '<S957>/DataType' */
13999 tmp = L4_MABX_B.Operator_m;
14000 if (tmp > 65535U) {
14001 tmp = 65535U;
14002 }
14003
14004 L4_MABX_B.DataType_bp = (uint16_T)tmp;
14005
14006 /* End of DataTypeConversion: '<S957>/DataType' */
14007
14008 /* ArithShift: '<S951>/Shift_Arithmetic ' */
14009 L4_MABX_B.Shift_Arithmetic_a = (uint16_T)((uint32_T)L4_MABX_B.DataType_bp >> 8);
14010
14011 /* DataTypeConversion: '<S951>/Data Type Conversion4' */
14012 tmp_0 = L4_MABX_B.Shift_Arithmetic_a;
14013 if (tmp_0 > 255) {
14014 tmp_0 = 255U;
14015 }
14016
14017 L4_MABX_B.DataTypeConversion4_a = (uint8_T)tmp_0;
14018
14019 /* End of DataTypeConversion: '<S951>/Data Type Conversion4' */
14020
14021 /* S-Function (sfix_bitop): '<S958>/Operator' */
14022 L4_MABX_B.Operator_d = L4_MABX_B.DataTypeConversion2_b &
14023 L4_MABX_P.Operator_BitMask_ii;
14024
14025 /* DataTypeConversion: '<S958>/DataType' */
14026 L4_MABX_B.DataType_k4 = L4_MABX_B.Operator_d;
14027
14028 /* ArithShift: '<S951>/Shift_Arithmetic 1' */
14029 L4_MABX_B.Shift_Arithmetic1_l = L4_MABX_B.DataType_k4 >> 16;
14030
14031 /* DataTypeConversion: '<S951>/Data Type Conversion5' */
14032 tmp = L4_MABX_B.Shift_Arithmetic1_l;
14033 if (tmp > 255U) {
14034 tmp = 255U;
14035 }
14036
14037 L4_MABX_B.DataTypeConversion5_hr = (uint8_T)tmp;
14038
14039 /* End of DataTypeConversion: '<S951>/Data Type Conversion5' */
14040
14041 /* S-Function (sfix_bitop): '<S959>/Operator' */
14042 L4_MABX_B.Operator_fa = L4_MABX_B.DataTypeConversion2_b &
14043 L4_MABX_P.Operator_BitMask_ju;
14044
14045 /* DataTypeConversion: '<S959>/DataType' */
14046 L4_MABX_B.DataType_i3 = L4_MABX_B.Operator_fa;
14047
14048 /* ArithShift: '<S951>/Shift_Arithmetic 2' */
14049 L4_MABX_B.Shift_Arithmetic2_m = L4_MABX_B.DataType_i3 >> 24;
14050
14051 /* DataTypeConversion: '<S951>/Data Type Conversion6' */
14052 tmp = L4_MABX_B.Shift_Arithmetic2_m;
14053 if (tmp > 255U) {
14054 tmp = 255U;
14055 }
14056
14057 L4_MABX_B.DataTypeConversion6_kd = (uint8_T)tmp;
14058
14059 /* End of DataTypeConversion: '<S951>/Data Type Conversion6' */
14060
14061 /* Reshape: '<S981>/Reshape' incorporates:
14062 * Constant: '<S981>/Constant'
14063 */
14064 for (i = 0; i < 16; i++) {
14065 L4_MABX_B.Reshape_l[i] = L4_MABX_P.Repeating_Sequence_Stair_OutV_h[i];
14066 }
14067
14068 /* End of Reshape: '<S981>/Reshape' */
14069
14070 /* UnitDelay: '<S981>/Unit_Delay' */
14071 L4_MABX_B.Unit_Delay_bk = L4_MABX_DW.Unit_Delay_DSTATE_ep;
14072
14073 /* UnitDelay: '<S982>/Unit Delay' */
14074 L4_MABX_B.UnitDelay_kz = L4_MABX_DW.UnitDelay_DSTATE_a;
14075
14076 /* Switch: '<S985>/Switch1' incorporates:
14077 * Constant: '<S982>/E'
14078 * Constant: '<S982>/IV'
14079 * Switch: '<S984>/Switch1'
14080 */
14081 if (L4_MABX_B.Unit_Delay_bk) {
14082 L4_MABX_B.Switch1_e = L4_MABX_P.IV_Value_l;
14083 } else {
14084 if (L4_MABX_P.E_Value_lj) {
14085 /* Sum: '<S982>/Subtract' incorporates:
14086 * Constant: '<S982>/Constant'
14087 * Switch: '<S984>/Switch1'
14088 */
14089 q0 = L4_MABX_P.Constant_Value_pu;
14090 tmp = q0 + L4_MABX_B.UnitDelay_kz;
14091 if (tmp < q0) {
14092 tmp = MAX_uint32_T;
14093 }
14094
14095 L4_MABX_B.Subtract_kx = tmp;
14096
14097 /* End of Sum: '<S982>/Subtract' */
14098
14099 /* Switch: '<S984>/Switch1' */
14100 L4_MABX_B.Switch1_c = L4_MABX_B.Subtract_kx;
14101 } else {
14102 /* Switch: '<S984>/Switch1' */
14103 L4_MABX_B.Switch1_c = L4_MABX_B.UnitDelay_kz;
14104 }
14105
14106 L4_MABX_B.Switch1_e = L4_MABX_B.Switch1_c;
14107 }
14108
14109 /* End of Switch: '<S985>/Switch1' */
14110
14111 /* Selector: '<S981>/Selector' */
14112 L4_MABX_B.Selector_l = L4_MABX_B.Reshape_l[(int32_T)L4_MABX_B.Switch1_e - 1];
14113
14114 /* DataTypeConversion: '<S951>/Data Type Conversion1' */
14115 L4_MABX_B.DataTypeConversion1_jm = L4_MABX_B.Selector_l;
14116
14117 /* S-Function (sfix_bitop): '<S964>/Operator' */
14118 L4_MABX_B.Operator_ms = (uint8_T)(L4_MABX_B.DataTypeConversion1_jm &
14119 L4_MABX_P.Operator_BitMask_hj);
14120
14121 /* DataTypeConversion: '<S964>/DataType' */
14122 L4_MABX_B.DataType_nl = L4_MABX_B.Operator_ms;
14123
14124 /* DataTypeConversion: '<S950>/Data Type Conversion' incorporates:
14125 * Constant: '<S950>/Priority'
14126 */
14127 L4_MABX_B.DataTypeConversion_dy = L4_MABX_P.Priority_Value_d;
14128
14129 /* ArithShift: '<S950>/Shift_Arithmetic ' */
14130 L4_MABX_B.Shift_Arithmetic_k2 = L4_MABX_B.DataTypeConversion_dy << 26;
14131
14132 /* DataTypeConversion: '<S950>/Data Type Conversion1' incorporates:
14133 * Constant: '<S950>/ExtendedDataPage'
14134 */
14135 L4_MABX_B.DataTypeConversion1_j5 = L4_MABX_P.ExtendedDataPage_Value_k;
14136
14137 /* ArithShift: '<S950>/Shift_Arithmetic 1' */
14138 L4_MABX_B.Shift_Arithmetic1_g = L4_MABX_B.DataTypeConversion1_j5 << 25;
14139
14140 /* DataTypeConversion: '<S950>/Data Type Conversion2' incorporates:
14141 * Constant: '<S950>/DataPage'
14142 */
14143 L4_MABX_B.DataTypeConversion2_hf = L4_MABX_P.DataPage_Value_c;
14144
14145 /* ArithShift: '<S950>/Shift_Arithmetic 2' */
14146 L4_MABX_B.Shift_Arithmetic2_gy = L4_MABX_B.DataTypeConversion2_hf << 24;
14147
14148 /* DataTypeConversion: '<S950>/Data Type Conversion3' incorporates:
14149 * Constant: '<S950>/PDUFormat'
14150 */
14151 L4_MABX_B.DataTypeConversion3_a = L4_MABX_P.PDUFormat_Value_e;
14152
14153 /* ArithShift: '<S950>/Shift_Arithmetic 3' */
14154 L4_MABX_B.Shift_Arithmetic3_p = L4_MABX_B.DataTypeConversion3_a << 16;
14155
14156 /* DataTypeConversion: '<S950>/Data Type Conversion4' incorporates:
14157 * Constant: '<S950>/PDUSpecific'
14158 */
14159 L4_MABX_B.DataTypeConversion4_n = L4_MABX_P.PDUSpecific_Value_a;
14160
14161 /* ArithShift: '<S950>/Shift_Arithmetic 4' */
14162 L4_MABX_B.Shift_Arithmetic4_d = L4_MABX_B.DataTypeConversion4_n << 8;
14163
14164 /* DataTypeConversion: '<S950>/Data Type Conversion5' incorporates:
14165 * Constant: '<S950>/SourceAddress'
14166 */
14167 L4_MABX_B.DataTypeConversion5_m = L4_MABX_P.SourceAddress_Value_k;
14168
14169 /* S-Function (sfix_bitop): '<S955>/Operator' */
14170 L4_MABX_B.Operator_f2 = L4_MABX_B.Shift_Arithmetic_k2 |
14171 L4_MABX_B.Shift_Arithmetic1_g | L4_MABX_B.Shift_Arithmetic2_gy |
14172 L4_MABX_B.Shift_Arithmetic3_p | L4_MABX_B.Shift_Arithmetic4_d |
14173 L4_MABX_B.DataTypeConversion5_m;
14174
14175 /* DataTypeConversion: '<S955>/DataType' */
14176 L4_MABX_B.DataType_d1 = L4_MABX_B.Operator_f2;
14177
14178 /* DataTypeConversion: '<S951>/Data Type Conversion3' */
14179 L4_MABX_B.DataTypeConversion3_ke = L4_MABX_B.DataType_d1;
14180
14181 /* S-Function (sfix_bitop): '<S960>/Operator' */
14182 L4_MABX_B.Operator_l0 = L4_MABX_B.DataTypeConversion3_ke &
14183 L4_MABX_P.Operator_BitMask_bn;
14184
14185 /* DataTypeConversion: '<S960>/DataType' */
14186 tmp = L4_MABX_B.Operator_l0;
14187 if (tmp > 255U) {
14188 tmp = 255U;
14189 }
14190
14191 L4_MABX_B.DataType_fc = (uint8_T)tmp;
14192
14193 /* End of DataTypeConversion: '<S960>/DataType' */
14194
14195 /* S-Function (sfix_bitop): '<S961>/Operator' */
14196 L4_MABX_B.Operator_n = L4_MABX_B.DataTypeConversion3_ke &
14197 L4_MABX_P.Operator_BitMask_lnv;
14198
14199 /* DataTypeConversion: '<S961>/DataType' */
14200 tmp = L4_MABX_B.Operator_n;
14201 if (tmp > 65535U) {
14202 tmp = 65535U;
14203 }
14204
14205 L4_MABX_B.DataType_g3 = (uint16_T)tmp;
14206
14207 /* End of DataTypeConversion: '<S961>/DataType' */
14208
14209 /* ArithShift: '<S951>/Shift_Arithmetic 3' */
14210 L4_MABX_B.Shift_Arithmetic3_d = (uint16_T)((uint32_T)L4_MABX_B.DataType_g3 >>
14211 8);
14212
14213 /* DataTypeConversion: '<S951>/Data Type Conversion8' */
14214 tmp_0 = L4_MABX_B.Shift_Arithmetic3_d;
14215 if (tmp_0 > 255) {
14216 tmp_0 = 255U;
14217 }
14218
14219 L4_MABX_B.DataTypeConversion8_i = (uint8_T)tmp_0;
14220
14221 /* End of DataTypeConversion: '<S951>/Data Type Conversion8' */
14222
14223 /* S-Function (sfix_bitop): '<S962>/Operator' */
14224 L4_MABX_B.Operator_b = L4_MABX_B.DataTypeConversion3_ke &
14225 L4_MABX_P.Operator_BitMask_jl;
14226
14227 /* DataTypeConversion: '<S962>/DataType' */
14228 L4_MABX_B.DataType_kf = L4_MABX_B.Operator_b;
14229
14230 /* ArithShift: '<S951>/Shift_Arithmetic 4' */
14231 L4_MABX_B.Shift_Arithmetic4_i = L4_MABX_B.DataType_kf >> 16;
14232
14233 /* DataTypeConversion: '<S951>/Data Type Conversion9' */
14234 tmp = L4_MABX_B.Shift_Arithmetic4_i;
14235 if (tmp > 255U) {
14236 tmp = 255U;
14237 }
14238
14239 L4_MABX_B.DataTypeConversion9_n = (uint8_T)tmp;
14240
14241 /* End of DataTypeConversion: '<S951>/Data Type Conversion9' */
14242
14243 /* S-Function (sfix_bitop): '<S963>/Operator' */
14244 L4_MABX_B.Operator_n2 = L4_MABX_B.DataTypeConversion3_ke &
14245 L4_MABX_P.Operator_BitMask_cv;
14246
14247 /* DataTypeConversion: '<S963>/DataType' */
14248 L4_MABX_B.DataType_ip = L4_MABX_B.Operator_n2;
14249
14250 /* ArithShift: '<S951>/Shift_Arithmetic 5' */
14251 L4_MABX_B.Shift_Arithmetic5_i = L4_MABX_B.DataType_ip >> 24;
14252
14253 /* DataTypeConversion: '<S951>/Data Type Conversion10' */
14254 tmp = L4_MABX_B.Shift_Arithmetic5_i;
14255 if (tmp > 255U) {
14256 tmp = 255U;
14257 }
14258
14259 L4_MABX_B.DataTypeConversion10_o = (uint8_T)tmp;
14260
14261 /* End of DataTypeConversion: '<S951>/Data Type Conversion10' */
14262
14263 /* Sum: '<S951>/Add' incorporates:
14264 * Constant: '<S951>/Constant'
14265 * Constant: '<S951>/Constant1'
14266 */
14267 L4_MABX_B.Add_h5 = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14268 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
14269 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14270 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion_o2 + L4_MABX_B.DataType_la)
14271 + L4_MABX_B.DataTypeConversion4_a) + L4_MABX_B.DataTypeConversion5_hr) +
14272 L4_MABX_B.DataTypeConversion6_kd) + L4_MABX_P.Constant_Value_f5) +
14273 L4_MABX_P.Constant1_Value_h1) + L4_MABX_B.DataType_fc) +
14274 L4_MABX_B.DataTypeConversion8_i) + L4_MABX_B.DataTypeConversion9_n)
14275 + L4_MABX_B.DataTypeConversion10_o) + L4_MABX_B.DataType_nl);
14276
14277 /* ArithShift: '<S951>/Shift_Arithmetic 6' */
14278 L4_MABX_B.Shift_Arithmetic6_f = (uint8_T)((uint32_T)L4_MABX_B.Add_h5 >> 4);
14279
14280 /* Sum: '<S951>/Add1' */
14281 L4_MABX_B.Add1_j = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_f +
14282 L4_MABX_B.Add_h5);
14283
14284 /* S-Function (sfix_bitop): '<S965>/Operator' */
14285 L4_MABX_B.Operator_an = (uint8_T)(L4_MABX_B.Add1_j &
14286 L4_MABX_P.Operator_BitMask_eb);
14287
14288 /* DataTypeConversion: '<S965>/DataType' */
14289 L4_MABX_B.DataType_el4 = L4_MABX_B.Operator_an;
14290
14291 /* ArithShift: '<S951>/Shift_Arithmetic 7' */
14292 L4_MABX_B.Shift_Arithmetic7_b = (uint8_T)(L4_MABX_B.DataType_el4 << 4);
14293
14294 /* S-Function (sfix_bitop): '<S966>/Operator' */
14295 L4_MABX_B.Operator_p0 = (uint8_T)(L4_MABX_B.DataType_nl |
14296 L4_MABX_B.Shift_Arithmetic7_b);
14297
14298 /* DataTypeConversion: '<S966>/DataType' */
14299 L4_MABX_B.DataType_ak = L4_MABX_B.Operator_p0;
14300
14301 /* DataTypeConversion: '<S917>/Data Type Conversion1' incorporates:
14302 * Constant: '<S951>/Constant'
14303 * Constant: '<S951>/Constant1'
14304 */
14305 L4_MABX_B.DataTypeConversion1_d[0] = L4_MABX_B.DataTypeConversion_o2;
14306 L4_MABX_B.DataTypeConversion1_d[1] = L4_MABX_B.DataType_la;
14307 L4_MABX_B.DataTypeConversion1_d[2] = L4_MABX_B.DataTypeConversion4_a;
14308 L4_MABX_B.DataTypeConversion1_d[3] = L4_MABX_B.DataTypeConversion5_hr;
14309 L4_MABX_B.DataTypeConversion1_d[4] = L4_MABX_B.DataTypeConversion6_kd;
14310 L4_MABX_B.DataTypeConversion1_d[5] = L4_MABX_P.Constant_Value_f5;
14311 L4_MABX_B.DataTypeConversion1_d[6] = L4_MABX_P.Constant1_Value_h1;
14312 L4_MABX_B.DataTypeConversion1_d[7] = L4_MABX_B.DataType_ak;
14313
14314 /* Outputs for Enabled SubSystem: '<S938>/PropB_REAX_1_E4' incorporates:
14315 * EnablePort: '<S940>/Enable'
14316 */
14317 if (L4_MABX_B.Operator_ox) {
14318 /* S-Function (rti_commonblock): '<S940>/S-Function1' incorporates:
14319 * Constant: '<S938>/Constant'
14320 * Constant: '<S938>/Constant1'
14321 */
14322 /* This comment workarounds a code generation problem */
14323
14324 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14325 {
14326 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14327 0x00 };
14328
14329 Float32 delayTime = 0.0;
14330
14331 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14332 CANTP1_PTR_M1_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14333
14334 /* ... perform loop-back if required */
14335 if (L4_MABX_P.Constant1_Value_ot > 0.5) {
14336 /* ... updating the used tx-clientbuffer */
14337 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->module,
14338 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14339
14340 /* ... Read status and timestamp info perform loop-back (previous message) */
14341 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4,
14342 8, // datalen
14343 &(CAN_Msg[0]),
14344 CANTP1_RX_SPMSG_M1_C2_XTD);
14345
14346 /* Convert timestamp */
14347 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14348 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14349 rtk_dsts_time_to_simtime_convert
14350 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14351 }
14352 } else {
14353 /* ... Read status and timestamp info (previous message) */
14354 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4);
14355
14356 /* Convert timestamp */
14357 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14358 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14359 rtk_dsts_time_to_simtime_convert
14360 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14361 }
14362 }
14363
14364 /* Messages with timestamp zero have been received in pause/stop state
14365 and must not be handled.
14366 */
14367 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14368 L4_MABX_B.SFunction1_o1_f1 = (real_T)
14369 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14370 L4_MABX_B.SFunction1_o2_m = (real_T)
14371 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14372 L4_MABX_B.SFunction1_o3_dp = (real_T)
14373 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14374 L4_MABX_B.SFunction1_o4_ej = (real_T)
14375 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14376 }
14377
14378 /* ... Encode Simulink signals of TX and RM blocks*/
14379 {
14380 rtican_Signal_t CAN_Sgn;
14381 UInt32 i;
14382
14383 /* Initialize the static message data to zero */
14384 for (i=0; i<8; i++ )
14385 CAN_Msg[i] = 0;
14386
14387 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14388 /* Add or substract 0.5 in order to round to nearest integer */
14389 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[0] ) +
14390 0.5);
14391 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14392 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14393
14394 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14395 /* Add or substract 0.5 in order to round to nearest integer */
14396 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[1] ) +
14397 0.5);
14398 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14399 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14400
14401 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14402 /* Add or substract 0.5 in order to round to nearest integer */
14403 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[2] ) +
14404 0.5);
14405 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14406 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14407
14408 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14409 /* Add or substract 0.5 in order to round to nearest integer */
14410 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[3] ) +
14411 0.5);
14412 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14413 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14414
14415 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14416 /* Add or substract 0.5 in order to round to nearest integer */
14417 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[4] ) +
14418 0.5);
14419 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14420 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14421
14422 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14423 /* Add or substract 0.5 in order to round to nearest integer */
14424 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[5] ) +
14425 0.5);
14426 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14427 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14428
14429 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14430 /* Add or substract 0.5 in order to round to nearest integer */
14431 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[6] ) +
14432 0.5);
14433 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14434 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14435
14436 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14437 /* Add or substract 0.5 in order to round to nearest integer */
14438 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[7] ) +
14439 0.5);
14440 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14441 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14442 }
14443
14444 delayTime = (Float32) L4_MABX_P.Constant_Value_c / (1700);
14445
14446 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14447 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4], 8,
14448 &(CAN_Msg[0]), delayTime);
14449 }
14450 }
14451
14452 /* End of Outputs for SubSystem: '<S938>/PropB_REAX_1_E4' */
14453
14454 /* Outputs for Enabled SubSystem: '<S939>/PropB_REAX_1_E4' incorporates:
14455 * EnablePort: '<S941>/Enable'
14456 */
14457 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
14458 /* S-Function (rti_commonblock): '<S941>/S-Function1' incorporates:
14459 * Constant: '<S939>/Constant'
14460 * Constant: '<S939>/Constant1'
14461 */
14462 /* This comment workarounds a code generation problem */
14463
14464 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14465 {
14466 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14467 0x00 };
14468
14469 Float32 delayTime = 0.0;
14470
14471 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14472 CANTP1_PTR_M3_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14473
14474 /* ... perform loop-back if required */
14475 if (L4_MABX_P.Constant1_Value_gz > 0.5) {
14476 /* ... updating the used tx-clientbuffer */
14477 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->module,
14478 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14479
14480 /* ... Read status and timestamp info perform loop-back (previous message) */
14481 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4,
14482 8, // datalen
14483 &(CAN_Msg[0]),
14484 CANTP1_RX_SPMSG_M3_C2_XTD);
14485
14486 /* Convert timestamp */
14487 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14488 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14489 rtk_dsts_time_to_simtime_convert
14490 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14491 }
14492 } else {
14493 /* ... Read status and timestamp info (previous message) */
14494 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4);
14495
14496 /* Convert timestamp */
14497 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14498 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14499 rtk_dsts_time_to_simtime_convert
14500 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14501 }
14502 }
14503
14504 /* Messages with timestamp zero have been received in pause/stop state
14505 and must not be handled.
14506 */
14507 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14508 L4_MABX_B.SFunction1_o1_i = (real_T)
14509 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14510 L4_MABX_B.SFunction1_o2_h = (real_T)
14511 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14512 L4_MABX_B.SFunction1_o3_f = (real_T)
14513 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14514 L4_MABX_B.SFunction1_o4_lg = (real_T)
14515 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14516 }
14517
14518 /* ... Encode Simulink signals of TX and RM blocks*/
14519 {
14520 rtican_Signal_t CAN_Sgn;
14521 UInt32 i;
14522
14523 /* Initialize the static message data to zero */
14524 for (i=0; i<8; i++ )
14525 CAN_Msg[i] = 0;
14526
14527 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14528 /* Add or substract 0.5 in order to round to nearest integer */
14529 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[0] ) +
14530 0.5);
14531 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14532 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14533
14534 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14535 /* Add or substract 0.5 in order to round to nearest integer */
14536 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[1] ) +
14537 0.5);
14538 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14539 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14540
14541 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14542 /* Add or substract 0.5 in order to round to nearest integer */
14543 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[2] ) +
14544 0.5);
14545 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14546 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14547
14548 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14549 /* Add or substract 0.5 in order to round to nearest integer */
14550 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[3] ) +
14551 0.5);
14552 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14553 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14554
14555 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14556 /* Add or substract 0.5 in order to round to nearest integer */
14557 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[4] ) +
14558 0.5);
14559 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14560 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14561
14562 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14563 /* Add or substract 0.5 in order to round to nearest integer */
14564 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[5] ) +
14565 0.5);
14566 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14567 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14568
14569 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14570 /* Add or substract 0.5 in order to round to nearest integer */
14571 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[6] ) +
14572 0.5);
14573 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14574 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14575
14576 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14577 /* Add or substract 0.5 in order to round to nearest integer */
14578 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[7] ) +
14579 0.5);
14580 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14581 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14582 }
14583
14584 delayTime = (Float32) L4_MABX_P.Constant_Value_m / (1700);
14585
14586 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14587 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4], 8,
14588 &(CAN_Msg[0]), delayTime);
14589 }
14590 }
14591
14592 /* End of Outputs for SubSystem: '<S939>/PropB_REAX_1_E4' */
14593
14594 /* DataTypeConversion: '<S918>/Data Type Conversion' incorporates:
14595 * Constant: '<S829>/CANT_VDC2_0B_CHANNEL_APV'
14596 */
14597 L4_MABX_B.DataTypeConversion_ms = (uint8_T)
14598 L4_MABX_P.CANT_VDC2_0B_CHANNEL_APV_Value;
14599
14600 /* S-Function (sfix_bitop): '<S946>/Operator' */
14601 L4_MABX_B.Operator_fo = (uint8_T)(L4_MABX_B.DataTypeConversion_ms &
14602 L4_MABX_P.Operator_BitMask_it);
14603
14604 /* DataTypeConversion: '<S946>/DataType' */
14605 L4_MABX_B.DataType_d2 = L4_MABX_B.Operator_fo;
14606
14607 /* ArithShift: '<S918>/Shift_Arithmetic 3' */
14608 L4_MABX_B.Shift_Arithmetic3_c = ldexp(L4_MABX_B.DataType_d2, (-4));
14609
14610 /* DataTypeConversion: '<S918>/Data Type Conversion6' */
14611 L4_MABX_B.DataTypeConversion6_hj = (L4_MABX_B.Shift_Arithmetic3_c != 0.0);
14612
14613 /* Outputs for Enabled SubSystem: '<S948>/VDC2_0B' incorporates:
14614 * EnablePort: '<S949>/Enable'
14615 */
14616 if (L4_MABX_B.DataTypeConversion6_hj) {
14617 /* S-Function (rti_commonblock): '<S949>/S-Function1' */
14618 /* This comment workarounds a code generation problem */
14619
14620 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
14621 {
14622 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
14623
14624 Float32 delayTime = 0.0;
14625
14626 /* ... Read status and timestamp info (previous message) */
14627 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]);
14628
14629 /* Convert timestamp */
14630 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed) {
14631 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp =
14632 rtk_dsts_time_to_simtime_convert
14633 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp);
14634 }
14635
14636 /* Messages with timestamp zero have been received in pause/stop state
14637 and must not be handled.
14638 */
14639 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp > 0.0) {
14640 L4_MABX_B.SFunction1_o1_ep = (real_T)
14641 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed;
14642 L4_MABX_B.SFunction1_o2_ir = (real_T)
14643 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp;
14644 L4_MABX_B.SFunction1_o3_o = (real_T)
14645 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->deltatime;
14646 L4_MABX_B.SFunction1_o4_nj = (real_T)
14647 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->delaytime;
14648 }
14649
14650 /* ... Encode Simulink signals of TX and RM blocks*/
14651 {
14652 rtican_Signal_t CAN_Sgn;
14653
14654 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
14655 /* Add or substract 0.5 in order to round to nearest integer */
14656 CAN_Sgn.UnsignedSgn = (UInt32) (( SteerWheelAngle - ( -31.374 ) ) /
14657 0.0009765625 + 0.5);
14658 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14659 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14660 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
14661
14662 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
14663 /* Add or substract 0.5 in order to round to nearest integer */
14664 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SFunction1_o2_jf - ( -32 ) +
14665 0.5);
14666 CAN_Sgn.UnsignedSgn &= 0x0000003F;
14667 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14668
14669 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
14670 /* Add or substract 0.5 in order to round to nearest integer */
14671 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_eg ) + 0.5);
14672 CAN_Sgn.UnsignedSgn &= 0x00000003;
14673 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
14674 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14675
14676 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
14677 /* Add or substract 0.5 in order to round to nearest integer */
14678 CAN_Sgn.UnsignedSgn = (UInt32) (( YawRate - ( -3.92 ) ) /
14679 0.0001220703125 + 0.5);
14680 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14681 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14682 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
14683
14684 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
14685 /* Add or substract 0.5 in order to round to nearest integer */
14686 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o5_l - ( -15.687 )
14687 ) / 0.00048828125 + 0.5);
14688 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14689 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14690 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte1;
14691
14692 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
14693 /* Add or substract 0.5 in order to round to nearest integer */
14694 CAN_Sgn.UnsignedSgn = (UInt32) (( SPN1810_LongitudinalAcceleration -
14695 ( -12.5 ) ) / 0.1 + 0.5);
14696 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14697 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14698 }
14699
14700 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14701 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B], 8,
14702 &(CAN_Msg[0]), delayTime);
14703 }
14704 }
14705
14706 /* End of Outputs for SubSystem: '<S948>/VDC2_0B' */
14707
14708 /* S-Function (sfix_bitop): '<S942>/Operator' */
14709 L4_MABX_B.Operator_b4 = (uint8_T)(L4_MABX_B.DataTypeConversion_ms &
14710 L4_MABX_P.Operator_BitMask_d4);
14711
14712 /* DataTypeConversion: '<S942>/DataType' */
14713 L4_MABX_B.DataType_pi = L4_MABX_B.Operator_b4;
14714
14715 /* S-Function (sfix_bitop): '<S943>/Operator' */
14716 L4_MABX_B.Operator_ly = (uint8_T)(L4_MABX_B.DataTypeConversion_ms &
14717 L4_MABX_P.Operator_BitMask_an);
14718
14719 /* DataTypeConversion: '<S943>/DataType' */
14720 L4_MABX_B.DataType_f1 = L4_MABX_B.Operator_ly;
14721
14722 /* S-Function (sfix_bitop): '<S944>/Operator' */
14723 L4_MABX_B.Operator_df = (uint8_T)(L4_MABX_B.DataTypeConversion_ms &
14724 L4_MABX_P.Operator_BitMask_mn);
14725
14726 /* DataTypeConversion: '<S944>/DataType' */
14727 L4_MABX_B.DataType_e = L4_MABX_B.Operator_df;
14728
14729 /* S-Function (sfix_bitop): '<S945>/Operator' */
14730 L4_MABX_B.Operator_bt = (uint8_T)(L4_MABX_B.DataTypeConversion_ms &
14731 L4_MABX_P.Operator_BitMask_h);
14732
14733 /* DataTypeConversion: '<S945>/DataType' */
14734 L4_MABX_B.DataType_at = L4_MABX_B.Operator_bt;
14735
14736 /* S-Function (sfix_bitop): '<S947>/Operator' */
14737 L4_MABX_B.Operator_pm = (uint8_T)(L4_MABX_B.DataTypeConversion_ms &
14738 L4_MABX_P.Operator_BitMask_lm);
14739
14740 /* DataTypeConversion: '<S947>/DataType' */
14741 L4_MABX_B.DataType_ce = L4_MABX_B.Operator_pm;
14742
14743 /* DataTypeConversion: '<S918>/Data Type Conversion1' */
14744 L4_MABX_B.DataTypeConversion1_ib = (L4_MABX_B.DataType_pi != 0);
14745
14746 /* ArithShift: '<S918>/Shift_Arithmetic ' */
14747 L4_MABX_B.Shift_Arithmetic_p = ldexp(L4_MABX_B.DataType_f1, (-1));
14748
14749 /* DataTypeConversion: '<S918>/Data Type Conversion3' */
14750 L4_MABX_B.DataTypeConversion3_aew = (L4_MABX_B.Shift_Arithmetic_p != 0.0);
14751
14752 /* ArithShift: '<S918>/Shift_Arithmetic 1' */
14753 L4_MABX_B.Shift_Arithmetic1_m = ldexp(L4_MABX_B.DataType_e, (-2));
14754
14755 /* DataTypeConversion: '<S918>/Data Type Conversion4' */
14756 L4_MABX_B.DataTypeConversion4_eu = (L4_MABX_B.Shift_Arithmetic1_m != 0.0);
14757
14758 /* ArithShift: '<S918>/Shift_Arithmetic 2' */
14759 L4_MABX_B.Shift_Arithmetic2_n = ldexp(L4_MABX_B.DataType_at, (-3));
14760
14761 /* DataTypeConversion: '<S918>/Data Type Conversion5' */
14762 L4_MABX_B.DataTypeConversion5_b = (L4_MABX_B.Shift_Arithmetic2_n != 0.0);
14763
14764 /* ArithShift: '<S918>/Shift_Arithmetic 4' */
14765 L4_MABX_B.Shift_Arithmetic4_bm = ldexp(L4_MABX_B.DataType_ce, (-5));
14766
14767 /* DataTypeConversion: '<S918>/Data Type Conversion7' */
14768 L4_MABX_B.DataTypeConversion7_o2 = (L4_MABX_B.Shift_Arithmetic4_bm != 0.0);
14769
14770 /* Logic: '<S979>/Logical Operator1' */
14771 L4_MABX_B.LogicalOperator1_m = !L4_MABX_B.Operator_MX;
14772
14773 /* Logic: '<S979>/Logical Operator' */
14774 L4_MABX_B.LogicalOperator_hz = (L4_MABX_B.LogicalOperator1_m &&
14775 L4_MABX_B.Operator_MN);
14776
14777 /* RelationalOperator: '<S983>/Operator' */
14778 L4_MABX_B.Operator_ca = (L4_MABX_B.Switch1_e == L4_MABX_B.Width_b);
14779
14780 /* End of Outputs for SubSystem: '<S824>/CAN_TX_10ms' */
14781
14782 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_20ms' */
14783
14784 /* RateTransition: '<S990>/TmpRTBAtDivide1Inport1' */
14785 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
14786 L4_MABX_B.BrakingPID_Y_e = L4_MABX_B.BrakingPID_Y_k;
14787 L4_MABX_B.AutonomousOutputEnabled_nr = AutonomousOutputEnabled;
14788 L4_MABX_B.BrakingControlActive_b = L4_MABX_B.F_Brake_control_active;
14789 L4_MABX_B.TmpRTBAtLogicalOperator8Inport1 = AutonomousOutputEnabled;
14790 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2 = AutonomousOutputEnabled;
14791 L4_MABX_B.TmpRTBAtUnit_DelayInport1 = AutonomousOutputEnabled;
14792 L4_MABX_B.BrakingPID_Y_es = L4_MABX_B.BrakingPID_Y_k;
14793 L4_MABX_B.FrontAxleSpeed_a = L4_MABX_B.SFunction1_o1_h54;
14794 L4_MABX_B.SPN1807_SteeringWheelAngle_l = SteerWheelAngle;
14795 L4_MABX_B.SPN1808_YawRate_f = YawRate;
14796 L4_MABX_B.SPN1810_LongitudinalAccelerat_k = SPN1810_LongitudinalAcceleration;
14797 }
14798
14799 /* End of Outputs for SubSystem: '<S824>/CAN_TX_20ms' */
14800
14801 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_5000ms' */
14802
14803 /* RateTransition: '<S1019>/TmpRTBAtOperatorInport2' */
14804 if (L4_MABX_M->Timing.RateInteraction.TID0_7 == 1) {
14805 L4_MABX_B.TmpRTBAtOperatorInport2 = AutonomousOutputEnabled;
14806 }
14807
14808 /* End of RateTransition: '<S1019>/TmpRTBAtOperatorInport2' */
14809
14810 /* End of Outputs for SubSystem: '<S824>/CAN_TX_5000ms' */
14811
14812 /* Outputs for Enabled SubSystem: '<S635>/TC1_03_05' incorporates:
14813 * EnablePort: '<S636>/Enable'
14814 */
14815 /* Constant: '<S450>/Constant' */
14816 if (L4_MABX_P.Constant_Value_fp) {
14817 /* S-Function (rti_commonblock): '<S636>/S-Function1' */
14818 /* This comment workarounds a code generation problem */
14819
14820 /* dSPACE RTICAN RX Message Block: "TC1_03_05" Id:201392901 */
14821 {
14822 UInt32 *CAN_Msg;
14823 static dsfloat time_old = 0.0;
14824
14825 /* Read status and timestamp info (previous message) */
14826 if (can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp !=
14827 time_old) {
14828 /* ... save timestamp info for the calculation of the RX status
14829 during the consecutive sample hit*/
14830 time_old = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].
14831 timestamp;
14832
14833 /* ... set the processed flag to one */
14834 L4_MABX_B.SFunction1_o26 = 1.0;
14835 L4_MABX_B.SFunction1_o27 = (real_T)
14836 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp;
14837 L4_MABX_B.SFunction1_o28 = (real_T)
14838 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].deltatime;
14839 CAN_Msg = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].data;
14840
14841 /* Decode CAN message */
14842 {
14843 {
14844 rtican_Signal_t CAN_Sgn;
14845
14846 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
14847 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14848 CAN_Sgn.UnsignedSgn &= 0x00000003;
14849 L4_MABX_B.SFunction1_o1_l5 = ((real_T) CAN_Sgn.UnsignedSgn);
14850
14851 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
14852 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14853 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14854 CAN_Sgn.UnsignedSgn &= 0x00000003;
14855 L4_MABX_B.SFunction1_o2_ay = ((real_T) CAN_Sgn.UnsignedSgn);
14856
14857 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
14858 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14859 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14860 CAN_Sgn.UnsignedSgn &= 0x00000003;
14861 L4_MABX_B.SFunction1_o3_dv = ((real_T) CAN_Sgn.UnsignedSgn);
14862
14863 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
14864 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14865 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14866 CAN_Sgn.UnsignedSgn &= 0x00000003;
14867 L4_MABX_B.SFunction1_o4_d = ((real_T) CAN_Sgn.UnsignedSgn);
14868
14869 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
14870 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14871 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14872 L4_MABX_B.SFunction1_o5_d = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
14873
14874 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
14875 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14876 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14877 L4_MABX_B.SFunction1_o6_k = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
14878
14879 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
14880 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14881 CAN_Sgn.UnsignedSgn &= 0x00000003;
14882 L4_MABX_B.SFunction1_o7_g = ((real_T) CAN_Sgn.UnsignedSgn);
14883
14884 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
14885 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14886 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14887 CAN_Sgn.UnsignedSgn &= 0x00000003;
14888 L4_MABX_B.SFunction1_o8_n = ((real_T) CAN_Sgn.UnsignedSgn);
14889
14890 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
14891 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14892 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14893 CAN_Sgn.UnsignedSgn &= 0x00000003;
14894 L4_MABX_B.SFunction1_o9_f = ((real_T) CAN_Sgn.UnsignedSgn);
14895
14896 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
14897 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14898 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14899 CAN_Sgn.UnsignedSgn &= 0x00000003;
14900 L4_MABX_B.SFunction1_o10_f = ((real_T) CAN_Sgn.UnsignedSgn);
14901
14902 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
14903 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14904 CAN_Sgn.UnsignedSgn &= 0x00000003;
14905 L4_MABX_B.SFunction1_o11 = ((real_T) CAN_Sgn.UnsignedSgn);
14906
14907 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
14908 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14909 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14910 CAN_Sgn.UnsignedSgn &= 0x00000003;
14911 L4_MABX_B.SFunction1_o12 = ((real_T) CAN_Sgn.UnsignedSgn);
14912
14913 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
14914 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14915 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14916 CAN_Sgn.UnsignedSgn &= 0x00000003;
14917 L4_MABX_B.SFunction1_o13 = ((real_T) CAN_Sgn.UnsignedSgn);
14918
14919 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
14920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14921 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14922 CAN_Sgn.UnsignedSgn &= 0x00000003;
14923 L4_MABX_B.SFunction1_o14 = ((real_T) CAN_Sgn.UnsignedSgn);
14924
14925 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
14926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14927 CAN_Sgn.UnsignedSgn &= 0x00000003;
14928 L4_MABX_B.SFunction1_o15 = ((real_T) CAN_Sgn.UnsignedSgn);
14929
14930 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
14931 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14932 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14933 CAN_Sgn.UnsignedSgn &= 0x00000003;
14934 L4_MABX_B.SFunction1_o16 = ((real_T) CAN_Sgn.UnsignedSgn);
14935
14936 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
14937 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14938 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14939 CAN_Sgn.UnsignedSgn &= 0x00000003;
14940 L4_MABX_B.SFunction1_o17 = ((real_T) CAN_Sgn.UnsignedSgn);
14941
14942 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
14943 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14944 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14945 CAN_Sgn.UnsignedSgn &= 0x00000003;
14946 L4_MABX_B.SFunction1_o18 = ((real_T) CAN_Sgn.UnsignedSgn);
14947
14948 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
14949 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14950 CAN_Sgn.UnsignedSgn &= 0x00000003;
14951 L4_MABX_B.SFunction1_o19 = ((real_T) CAN_Sgn.UnsignedSgn);
14952
14953 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
14954 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14955 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14956 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14957 L4_MABX_B.SFunction1_o20 = ((real_T) CAN_Sgn.UnsignedSgn);
14958
14959 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
14960 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14961 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14962 CAN_Sgn.UnsignedSgn &= 0x00000003;
14963 L4_MABX_B.SFunction1_o21 = ((real_T) CAN_Sgn.UnsignedSgn);
14964
14965 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
14966 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14967 CAN_Sgn.UnsignedSgn &= 0x00000003;
14968 L4_MABX_B.SFunction1_o22 = ((real_T) CAN_Sgn.UnsignedSgn);
14969
14970 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
14971 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14972 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14973 CAN_Sgn.UnsignedSgn &= 0x00000003;
14974 L4_MABX_B.SFunction1_o23 = ((real_T) CAN_Sgn.UnsignedSgn);
14975
14976 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
14977 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14978 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14979 CAN_Sgn.UnsignedSgn &= 0x00000003;
14980 L4_MABX_B.SFunction1_o24 = ((real_T) CAN_Sgn.UnsignedSgn);
14981
14982 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
14983 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14984 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14985 CAN_Sgn.UnsignedSgn &= 0x00000003;
14986 L4_MABX_B.SFunction1_o25 = ((real_T) CAN_Sgn.UnsignedSgn);
14987 }
14988 }
14989 } else {
14990 /* set RX status to 0 because no new message has arrived */
14991 L4_MABX_B.SFunction1_o26 = 0.0;
14992 }
14993 }
14994 }
14995
14996 /* End of Constant: '<S450>/Constant' */
14997 /* End of Outputs for SubSystem: '<S635>/TC1_03_05' */
14998
14999 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_50ms' */
15000
15001 /* RateTransition: '<S1029>/TmpRTBAtCCVS1_E3Inport1' */
15002 if (L4_MABX_M->Timing.RateInteraction.TID0_2 == 1) {
15003 L4_MABX_B.TwoSpeedAxleSwitch = L4_MABX_B.SFunction1_o1_mf;
15004 L4_MABX_B.ParkingBrakeSwitch = L4_MABX_B.SFunction1_o2_j0;
15005 L4_MABX_B.CruiseCtrlPauseSwitch = L4_MABX_B.SFunction1_o3_ko;
15006 L4_MABX_B.ParkBrakeReleaseInhibitRq = L4_MABX_B.SFunction1_o4_np;
15007 L4_MABX_B.WheelBasedVehicleSpeed_b = WheelBasedVehicleSpeed;
15008 L4_MABX_B.CruiseCtrlActive = L4_MABX_B.SFunction1_o6_j;
15009 L4_MABX_B.CruiseCtrlEnableSwitch_b = L4_MABX_B.SFunction1_o7_m;
15010 L4_MABX_B.BrakeSwitch_i = BrakeSwitch;
15011 L4_MABX_B.ClutchSwitch = L4_MABX_B.SFunction1_o9_oo;
15012 L4_MABX_B.CruiseCtrlSetSwitch = L4_MABX_B.SFunction1_o10_am;
15013 L4_MABX_B.CruiseCtrlCoastSwitch = L4_MABX_B.SFunction1_o11_g;
15014 L4_MABX_B.CruiseCtrlResumeSwitch = L4_MABX_B.SFunction1_o12_l;
15015 L4_MABX_B.CruiseCtrlAccelerateSwitch = L4_MABX_B.SFunction1_o13_dw;
15016 L4_MABX_B.CruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o14_e;
15017 L4_MABX_B.PTOGovernorState = L4_MABX_B.SFunction1_o15_b;
15018 L4_MABX_B.CruiseCtrlStates = L4_MABX_B.SFunction1_o16_g;
15019 L4_MABX_B.EngIdleIncrementSwitch = L4_MABX_B.SFunction1_o17_c;
15020 L4_MABX_B.EngIdleDecrementSwitch = L4_MABX_B.SFunction1_o18_e;
15021 L4_MABX_B.EngTestModeSwitch = L4_MABX_B.SFunction1_o19_g;
15022 L4_MABX_B.EngShutdownOverrideSwitch = L4_MABX_B.SFunction1_o20_eq;
15023 L4_MABX_B.SPN681_TransGearShiftInhibitReq = L4_MABX_B.SFunction1_o1_l5;
15024 L4_MABX_B.SPN682_TransTrqConvLockupDisReq = L4_MABX_B.SFunction1_o2_ay;
15025 L4_MABX_B.SPN683_DisengageDrivelineReq = L4_MABX_B.SFunction1_o3_dv;
15026 L4_MABX_B.SPN4242_TransRevGearShiftInhibR = L4_MABX_B.SFunction1_o4_d;
15027 L4_MABX_B.SPN684_RequestedPercClutchSlip = L4_MABX_B.SFunction1_o5_d;
15028 L4_MABX_B.SPN525_TransRequestedGear = L4_MABX_B.SFunction1_o6_k;
15029 L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 = L4_MABX_B.SFunction1_o7_g;
15030 L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 = L4_MABX_B.SFunction1_o8_n;
15031 L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 = L4_MABX_B.SFunction1_o9_f;
15032 L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 = L4_MABX_B.SFunction1_o10_f;
15033 L4_MABX_B.SPN689_DisengageDiffLockRqC = L4_MABX_B.SFunction1_o11;
15034 L4_MABX_B.SPN690_DisengageDiffLockRqCF = L4_MABX_B.SFunction1_o12;
15035 L4_MABX_B.SPN691_DisengageDiffLockRqCR = L4_MABX_B.SFunction1_o13;
15036 L4_MABX_B.SPN5762_TransLoadRedInhibitRq = L4_MABX_B.SFunction1_o14;
15037 L4_MABX_B.SPN1852_TransmissionMode1 = L4_MABX_B.SFunction1_o15;
15038 L4_MABX_B.SPN1853_TransmissionMode2 = L4_MABX_B.SFunction1_o16;
15039 L4_MABX_B.SPN1854_TransmissionMode3 = L4_MABX_B.SFunction1_o17;
15040 L4_MABX_B.SPN1855_TransmissionMode4 = L4_MABX_B.SFunction1_o18;
15041 L4_MABX_B.SPN7695_TransAutoNeutralRequest = L4_MABX_B.SFunction1_o19;
15042 L4_MABX_B.SPN4255_TransRequestedLaunchGea = L4_MABX_B.SFunction1_o20;
15043 L4_MABX_B.SPN2985_TransShiftSelDispModeSw = L4_MABX_B.SFunction1_o21;
15044 L4_MABX_B.SPN4246_TransmissionMode5 = L4_MABX_B.SFunction1_o22;
15045 L4_MABX_B.SPN4247_TransmissionMode6 = L4_MABX_B.SFunction1_o23;
15046 L4_MABX_B.SPN4248_TransmissionMode7 = L4_MABX_B.SFunction1_o24;
15047 L4_MABX_B.SPN4249_TransmissionMode8 = L4_MABX_B.SFunction1_o25;
15048 }
15049
15050 /* End of Outputs for SubSystem: '<S824>/CAN_TX_50ms' */
15051
15052 /* Outputs for Enabled SubSystem: '<S633>/SystemTime_01' incorporates:
15053 * EnablePort: '<S634>/Enable'
15054 */
15055 /* Constant: '<S449>/Constant' */
15056 if (L4_MABX_P.Constant_Value_cy > 0.0) {
15057 /* S-Function (rti_commonblock): '<S634>/S-Function1' */
15058 /* This comment workarounds a code generation problem */
15059
15060 /* dSPACE RTICAN RX Message Block: "SystemTime_01" Id:233836544 */
15061 {
15062 UInt32 *CAN_Msg;
15063 static dsfloat time_old = 0.0;
15064
15065 /* Read status and timestamp info (previous message) */
15066 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp !=
15067 time_old) {
15068 /* ... save timestamp info for the calculation of the RX status
15069 during the consecutive sample hit*/
15070 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].
15071 timestamp;
15072
15073 /* ... set the processed flag to one */
15074 L4_MABX_B.SFunction1_o5_k = 1.0;
15075 L4_MABX_B.SFunction1_o6_d = (real_T)
15076 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp;
15077 L4_MABX_B.SFunction1_o7_o = (real_T)
15078 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].deltatime;
15079 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].data;
15080
15081 /* Decode CAN message */
15082 {
15083 {
15084 rtican_Signal_t CAN_Sgn;
15085
15086 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15087 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15088 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15089 L4_MABX_B.SFunction1_o1_k = ((real_T) CAN_Sgn.UnsignedSgn);
15090
15091 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
15092 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15093 CAN_Sgn.UnsignedSgn &= 0x0000000F;
15094 L4_MABX_B.SFunction1_o2_hp = ((real_T) CAN_Sgn.UnsignedSgn);
15095
15096 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
15097 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15098 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15099 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
15100 L4_MABX_B.SFunction1_o3_er = ((real_T) CAN_Sgn.UnsignedSgn);
15101
15102 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
15103 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15104 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15105 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
15106 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
15107 L4_MABX_B.SFunction1_o4_dk = 0.0001 * ( ((real_T)
15108 CAN_Sgn.UnsignedSgn) );
15109 }
15110 }
15111 } else {
15112 /* set RX status to 0 because no new message has arrived */
15113 L4_MABX_B.SFunction1_o5_k = 0.0;
15114 }
15115 }
15116 }
15117
15118 /* End of Constant: '<S449>/Constant' */
15119 /* End of Outputs for SubSystem: '<S633>/SystemTime_01' */
15120
15121 /* DataTypeConversion: '<S633>/Data Type Conversion8' */
15122 L4_MABX_B.RX_status_o = (L4_MABX_B.SFunction1_o5_k != 0.0);
15123
15124 /* Logic: '<S1043>/Operator' incorporates:
15125 * Constant: '<S1041>/Constant'
15126 */
15127 L4_MABX_B.Operator_kz = (L4_MABX_P.Constant_Value_lu && L4_MABX_B.RX_status_o);
15128
15129 /* DataTypeConversion: '<S1043>/DataType' */
15130 L4_MABX_B.DataType_n0 = L4_MABX_B.Operator_kz;
15131
15132 /* Outputs for Enabled SubSystem: '<S1042>/Std_SystemTime_01' incorporates:
15133 * EnablePort: '<S1044>/Enable'
15134 */
15135 if (L4_MABX_B.DataType_n0) {
15136 /* S-Function (rti_commonblock): '<S1044>/S-Function1' incorporates:
15137 * Constant: '<S1042>/Constant'
15138 * Constant: '<S1042>/Constant1'
15139 */
15140 /* This comment workarounds a code generation problem */
15141
15142 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
15143 {
15144 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15145 0x00 };
15146
15147 Float32 delayTime = 0.0;
15148
15149 /* link this pointer to CAN_Msg for use in initialize_io_units() */
15150 CANTP1_PTR_M3_C2_STD_0x5 = &(CAN_Msg[0]);
15151
15152 /* ... perform loop-back if required */
15153 if (L4_MABX_P.Constant1_Value_o3 > 0.5) {
15154 /* ... updating the used tx-clientbuffer */
15155 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X5->module,
15156 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->queue );
15157
15158 /* ... Read status and timestamp info perform loop-back (previous message) */
15159 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X5,
15160 8, // datalen
15161 &(CAN_Msg[0]),
15162 CANTP1_RX_SPMSG_M3_C2_STD);
15163
15164 /* Convert timestamp */
15165 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
15166 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
15167 rtk_dsts_time_to_simtime_convert
15168 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
15169 }
15170 } else {
15171 /* ... Read status and timestamp info (previous message) */
15172 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X5);
15173
15174 /* Convert timestamp */
15175 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
15176 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
15177 rtk_dsts_time_to_simtime_convert
15178 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
15179 }
15180 }
15181
15182 /* Messages with timestamp zero have been received in pause/stop state
15183 and must not be handled.
15184 */
15185 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp > 0.0) {
15186 L4_MABX_B.SFunction1_o1_h = (real_T)
15187 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed;
15188 L4_MABX_B.SFunction1_o2_c = (real_T)
15189 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp;
15190 L4_MABX_B.SFunction1_o3 = (real_T)
15191 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->deltatime;
15192 L4_MABX_B.SFunction1_o4 = (real_T)
15193 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->delaytime;
15194 }
15195
15196 /* ... Encode Simulink signals of TX and RM blocks*/
15197 {
15198 rtican_Signal_t CAN_Sgn;
15199 UInt32 i;
15200
15201 /* Initialize the static message data to zero */
15202 for (i=0; i<8; i++ )
15203 CAN_Msg[i] = 0;
15204
15205 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15206 /* Add or substract 0.5 in order to round to nearest integer */
15207 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o1_k ) + 0.5);
15208 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15209 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15210
15211 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
15212 /* Add or substract 0.5 in order to round to nearest integer */
15213 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o2_hp ) + 0.5);
15214 CAN_Sgn.UnsignedSgn &= 0x0000000F;
15215 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15216
15217 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
15218 /* Add or substract 0.5 in order to round to nearest integer */
15219 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_er ) + 0.5);
15220 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
15221 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15222 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
15223
15224 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
15225 /* Add or substract 0.5 in order to round to nearest integer */
15226 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o4_dk - ( 0 ) ) /
15227 0.0001 + 0.5);
15228 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15229 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
15230 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
15231 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
15232 }
15233
15234 delayTime = (Float32) L4_MABX_P.Constant_Value_o2 / (2000);
15235
15236 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15237 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5], 8, &(CAN_Msg[0]),
15238 delayTime);
15239 }
15240 }
15241
15242 /* End of Outputs for SubSystem: '<S1042>/Std_SystemTime_01' */
15243
15244 /* Constant: '<S1033>/Byte1' */
15245 L4_MABX_B.VectorConcatenate[0] = L4_MABX_P.Byte1_Value_o;
15246
15247 /* Constant: '<S1033>/Byte2' */
15248 L4_MABX_B.VectorConcatenate[1] = L4_MABX_P.Byte2_Value_o;
15249
15250 /* Constant: '<S1033>/Byte3' */
15251 L4_MABX_B.VectorConcatenate[2] = L4_MABX_P.Byte3_Value_m;
15252
15253 /* Constant: '<S1033>/Byte4' */
15254 L4_MABX_B.VectorConcatenate[3] = L4_MABX_P.Byte4_Value_f;
15255
15256 /* Constant: '<S1033>/Byte5' */
15257 L4_MABX_B.VectorConcatenate[4] = L4_MABX_P.Byte5_Value_g;
15258
15259 /* Constant: '<S1033>/Byte6' */
15260 L4_MABX_B.VectorConcatenate[5] = L4_MABX_P.Byte6_Value_f;
15261
15262 /* Constant: '<S1033>/Byte7' */
15263 L4_MABX_B.VectorConcatenate[6] = L4_MABX_P.Byte7_Value_c;
15264
15265 /* Constant: '<S1033>/Byte8' */
15266 L4_MABX_B.VectorConcatenate[7] = L4_MABX_P.Byte8_Value_i;
15267
15268 /* DataTypeConversion: '<S1037>/Data Type Conversion' */
15269 for (i = 0; i < 8; i++) {
15270 L4_MABX_B.DataTypeConversion[i] = L4_MABX_B.VectorConcatenate[i];
15271 }
15272
15273 /* End of DataTypeConversion: '<S1037>/Data Type Conversion' */
15274
15275 /* UnitDelay: '<S834>/Unit Delay2' */
15276 L4_MABX_B.UnitDelay2 = L4_MABX_DW.UnitDelay2_DSTATE;
15277
15278 /* Outputs for Triggered SubSystem: '<S1037>/CAN_TYPE1_TX_M1_C1' incorporates:
15279 * TriggerPort: '<S1039>/Trigger'
15280 */
15281 zcEvent = (L4_MABX_B.UnitDelay2 &&
15282 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_i != POS_ZCSIG));
15283 if (zcEvent) {
15284 /* S-Function (rti_commonblock): '<S1039>/S-Function1' */
15285 /* This comment workarounds a code generation problem */
15286
15287 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
15288 {
15289 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15290
15291 Float32 delayTime = 0.0;
15292
15293 /* ... Read status and timestamp info (previous message) */
15294 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]);
15295
15296 /* Convert timestamp */
15297 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed) {
15298 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp =
15299 rtk_dsts_time_to_simtime_convert
15300 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp);
15301 }
15302
15303 /* Messages with timestamp zero have been received in pause/stop state
15304 and must not be handled.
15305 */
15306 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp > 0.0) {
15307 L4_MABX_B.SFunction1_o1_b = (real_T)
15308 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed;
15309 L4_MABX_B.SFunction1_o2_i = (real_T)
15310 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp;
15311 L4_MABX_B.SFunction1_o3_e = (real_T)
15312 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->deltatime;
15313 L4_MABX_B.SFunction1_o4_n = (real_T)
15314 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->delaytime;
15315 }
15316
15317 /* ... Encode Simulink signals of TX and RM blocks*/
15318 {
15319 rtican_Signal_t CAN_Sgn;
15320
15321 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15322 /* Add or substract 0.5 in order to round to nearest integer */
15323 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[0] ) +
15324 0.5);
15325 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15326 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15327
15328 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15329 /* Add or substract 0.5 in order to round to nearest integer */
15330 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[1] ) +
15331 0.5);
15332 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15333 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15334
15335 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15336 /* Add or substract 0.5 in order to round to nearest integer */
15337 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[2] ) +
15338 0.5);
15339 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15340 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15341
15342 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15343 /* Add or substract 0.5 in order to round to nearest integer */
15344 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[3] ) +
15345 0.5);
15346 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15347 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15348
15349 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15350 /* Add or substract 0.5 in order to round to nearest integer */
15351 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[4] ) +
15352 0.5);
15353 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15354 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15355
15356 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15357 /* Add or substract 0.5 in order to round to nearest integer */
15358 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[5] ) +
15359 0.5);
15360 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15361 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15362
15363 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15364 /* Add or substract 0.5 in order to round to nearest integer */
15365 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[6] ) +
15366 0.5);
15367 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15368 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15369
15370 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15371 /* Add or substract 0.5 in order to round to nearest integer */
15372 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[7] ) +
15373 0.5);
15374 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15375 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15376 }
15377
15378 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15379 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05], 8,
15380 &(CAN_Msg[0]), delayTime);
15381 }
15382 }
15383
15384 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_i = L4_MABX_B.UnitDelay2;
15385
15386 /* End of Outputs for SubSystem: '<S1037>/CAN_TYPE1_TX_M1_C1' */
15387
15388 /* UnitDelay: '<S834>/Unit Delay1' */
15389 L4_MABX_B.UnitDelay1_m = L4_MABX_DW.UnitDelay1_DSTATE_i;
15390
15391 /* MultiPortSwitch: '<S834>/Multiport Switch' incorporates:
15392 * Constant: '<S1035>/Byte1'
15393 * Constant: '<S1035>/Byte2'
15394 * Constant: '<S1035>/Byte3'
15395 * Constant: '<S1035>/Byte4'
15396 * Constant: '<S1035>/Byte5'
15397 * Constant: '<S1035>/Byte6'
15398 * Constant: '<S1035>/Byte7'
15399 * Constant: '<S1035>/Byte8'
15400 * Constant: '<S1036>/Byte1'
15401 * Constant: '<S1036>/Byte2'
15402 * Constant: '<S1036>/Byte3'
15403 * Constant: '<S1036>/Byte4'
15404 * Constant: '<S1036>/Byte5'
15405 * Constant: '<S1036>/Byte6'
15406 * Constant: '<S1036>/Byte7'
15407 * Constant: '<S1036>/Byte8'
15408 */
15409 if (L4_MABX_B.UnitDelay1_m == 1) {
15410 L4_MABX_B.VectorConcatenate_e[7] = L4_MABX_P.Byte8_Value_c;
15411 L4_MABX_B.VectorConcatenate_e[6] = L4_MABX_P.Byte7_Value_n;
15412 L4_MABX_B.VectorConcatenate_e[5] = L4_MABX_P.Byte6_Value_e;
15413 L4_MABX_B.VectorConcatenate_e[4] = L4_MABX_P.Byte5_Value_n;
15414 L4_MABX_B.VectorConcatenate_e[3] = L4_MABX_P.Byte4_Value_k;
15415 L4_MABX_B.VectorConcatenate_e[2] = L4_MABX_P.Byte3_Value_n;
15416 L4_MABX_B.VectorConcatenate_e[1] = L4_MABX_P.Byte2_Value_e;
15417 L4_MABX_B.VectorConcatenate_e[0] = L4_MABX_P.Byte1_Value_l;
15418 for (i = 0; i < 8; i++) {
15419 L4_MABX_B.MultiportSwitch_iq[i] = L4_MABX_B.VectorConcatenate_e[i];
15420 }
15421 } else {
15422 L4_MABX_B.VectorConcatenate_g[7] = L4_MABX_P.Byte8_Value;
15423 L4_MABX_B.VectorConcatenate_g[6] = L4_MABX_P.Byte7_Value;
15424 L4_MABX_B.VectorConcatenate_g[5] = L4_MABX_P.Byte6_Value;
15425 L4_MABX_B.VectorConcatenate_g[4] = L4_MABX_P.Byte5_Value;
15426 L4_MABX_B.VectorConcatenate_g[3] = L4_MABX_P.Byte4_Value;
15427 L4_MABX_B.VectorConcatenate_g[2] = L4_MABX_P.Byte3_Value;
15428 L4_MABX_B.VectorConcatenate_g[1] = L4_MABX_P.Byte2_Value;
15429 L4_MABX_B.VectorConcatenate_g[0] = L4_MABX_P.Byte1_Value;
15430 for (i = 0; i < 8; i++) {
15431 L4_MABX_B.MultiportSwitch_iq[i] = L4_MABX_B.VectorConcatenate_g[i];
15432 }
15433 }
15434
15435 /* End of MultiPortSwitch: '<S834>/Multiport Switch' */
15436
15437 /* DataTypeConversion: '<S1038>/Data Type Conversion' */
15438 for (i = 0; i < 8; i++) {
15439 L4_MABX_B.DataTypeConversion_e[i] = L4_MABX_B.MultiportSwitch_iq[i];
15440 }
15441
15442 /* End of DataTypeConversion: '<S1038>/Data Type Conversion' */
15443
15444 /* UnitDelay: '<S834>/Unit Delay3' */
15445 L4_MABX_B.UnitDelay3 = L4_MABX_DW.UnitDelay3_DSTATE;
15446
15447 /* Outputs for Triggered SubSystem: '<S1038>/CAN_TYPE1_TX_M1_C1' incorporates:
15448 * TriggerPort: '<S1040>/Trigger'
15449 */
15450 zcEvent = (L4_MABX_B.UnitDelay3 &&
15451 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE != POS_ZCSIG));
15452 if (zcEvent) {
15453 /* S-Function (rti_commonblock): '<S1040>/S-Function1' */
15454 /* This comment workarounds a code generation problem */
15455
15456 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
15457 {
15458 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15459
15460 Float32 delayTime = 0.0;
15461
15462 /* ... Read status and timestamp info (previous message) */
15463 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]);
15464
15465 /* Convert timestamp */
15466 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed) {
15467 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp =
15468 rtk_dsts_time_to_simtime_convert
15469 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp);
15470 }
15471
15472 /* Messages with timestamp zero have been received in pause/stop state
15473 and must not be handled.
15474 */
15475 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp > 0.0) {
15476 L4_MABX_B.SFunction1_o1_e = (real_T)
15477 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed;
15478 L4_MABX_B.SFunction1_o2_n = (real_T)
15479 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp;
15480 L4_MABX_B.SFunction1_o3_l = (real_T)
15481 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->deltatime;
15482 L4_MABX_B.SFunction1_o4_m = (real_T)
15483 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->delaytime;
15484 }
15485
15486 /* ... Encode Simulink signals of TX and RM blocks*/
15487 {
15488 rtican_Signal_t CAN_Sgn;
15489
15490 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15491 /* Add or substract 0.5 in order to round to nearest integer */
15492 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[0] ) +
15493 0.5);
15494 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15495 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15496
15497 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15498 /* Add or substract 0.5 in order to round to nearest integer */
15499 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[1] ) +
15500 0.5);
15501 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15502 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15503
15504 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15505 /* Add or substract 0.5 in order to round to nearest integer */
15506 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[2] ) +
15507 0.5);
15508 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15509 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15510
15511 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15512 /* Add or substract 0.5 in order to round to nearest integer */
15513 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[3] ) +
15514 0.5);
15515 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15516 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15517
15518 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15519 /* Add or substract 0.5 in order to round to nearest integer */
15520 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[4] ) +
15521 0.5);
15522 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15523 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15524
15525 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15526 /* Add or substract 0.5 in order to round to nearest integer */
15527 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[5] ) +
15528 0.5);
15529 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15530 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15531
15532 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15533 /* Add or substract 0.5 in order to round to nearest integer */
15534 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[6] ) +
15535 0.5);
15536 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15537 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15538
15539 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15540 /* Add or substract 0.5 in order to round to nearest integer */
15541 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_e[7] ) +
15542 0.5);
15543 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15544 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15545 }
15546
15547 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15548 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05], 8,
15549 &(CAN_Msg[0]), delayTime);
15550 }
15551 }
15552
15553 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = L4_MABX_B.UnitDelay3;
15554
15555 /* End of Outputs for SubSystem: '<S1038>/CAN_TYPE1_TX_M1_C1' */
15556
15557 /* Chart: '<S834>/Chart' incorporates:
15558 * Constant: '<S834>/Constant1'
15559 */
15560 if (L4_MABX_DW.temporalCounter_i1_m < 255U) {
15561 L4_MABX_DW.temporalCounter_i1_m++;
15562 }
15563
15564 /* Gateway: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15565 /* During: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15566 if (L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW == 0U) {
15567 /* Entry: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15568 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 1U;
15569
15570 /* Entry Internal: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15571 /* Transition: '<S1034>:4' */
15572 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_Init_h;
15573
15574 /* Entry 'Init': '<S1034>:1' */
15575 L4_MABX_B.State = 0U;
15576 L4_MABX_B.enTPCM = false;
15577 L4_MABX_B.enTPDT = false;
15578 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_i;
15579 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_n;
15580 L4_MABX_B.TPDT_count = 0U;
15581 } else {
15582 switch (L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf) {
15583 case L4_MABX_IN_CheckPacketCount:
15584 L4_MABX_B.State = 6U;
15585
15586 /* During 'CheckPacketCount': '<S1034>:11' */
15587 if (L4_MABX_B.TPDT_count <= L4_MABX_P.Constant1_Value_dn) {
15588 /* Transition: '<S1034>:18' */
15589 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15590 L4_MABX_DW.temporalCounter_i1_m = 0U;
15591
15592 /* Entry 'SendTPDT': '<S1034>:6' */
15593 L4_MABX_B.State = 4U;
15594 L4_MABX_B.enTPDT = true;
15595 } else {
15596 /* Transition: '<S1034>:19' */
15597 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf =
15598 L4_MABX_IN_WaitForNextPeriod;
15599 L4_MABX_DW.temporalCounter_i1_m = 0U;
15600
15601 /* Entry 'WaitForNextPeriod': '<S1034>:17' */
15602 L4_MABX_B.State = 7U;
15603 }
15604 break;
15605
15606 case L4_MABX_IN_Init_h:
15607 /* During 'Init': '<S1034>:1' */
15608 /* Transition: '<S1034>:9' */
15609 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15610
15611 /* Entry 'StartMsg': '<S1034>:30' */
15612 L4_MABX_B.State = 1U;
15613 L4_MABX_B.TPDT_count = 1U;
15614 break;
15615
15616 case L4_MABX_IN_InterframeDelay:
15617 L4_MABX_B.State = 3U;
15618
15619 /* During 'InterframeDelay': '<S1034>:7' */
15620 if (L4_MABX_DW.temporalCounter_i1_m >= 5U) {
15621 /* Transition: '<S1034>:10' */
15622 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15623 L4_MABX_DW.temporalCounter_i1_m = 0U;
15624
15625 /* Entry 'SendTPDT': '<S1034>:6' */
15626 L4_MABX_B.State = 4U;
15627 L4_MABX_B.enTPDT = true;
15628 }
15629 break;
15630
15631 case L4_MABX_IN_InterframeDelay1:
15632 L4_MABX_B.State = 5U;
15633
15634 /* During 'InterframeDelay1': '<S1034>:12' */
15635 if (L4_MABX_DW.temporalCounter_i1_m >= 5U) {
15636 /* Transition: '<S1034>:14' */
15637 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_CheckPacketCount;
15638
15639 /* Entry 'CheckPacketCount': '<S1034>:11' */
15640 L4_MABX_B.State = 6U;
15641 i = (int32_T)(L4_MABX_B.TPDT_count + 1U);
15642 if ((uint32_T)i > 255U) {
15643 i = 255;
15644 }
15645
15646 L4_MABX_B.TPDT_count = (uint8_T)i;
15647 }
15648 break;
15649
15650 case L4_MABX_IN_SendTPCM:
15651 L4_MABX_B.State = 2U;
15652
15653 /* During 'SendTPCM': '<S1034>:5' */
15654 if (L4_MABX_DW.temporalCounter_i1_m >= 1U) {
15655 /* Transition: '<S1034>:8' */
15656 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay;
15657 L4_MABX_DW.temporalCounter_i1_m = 0U;
15658
15659 /* Entry 'InterframeDelay': '<S1034>:7' */
15660 L4_MABX_B.State = 3U;
15661 L4_MABX_B.enTPCM = false;
15662 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_i;
15663 }
15664 break;
15665
15666 case L4_MABX_IN_SendTPDT:
15667 L4_MABX_B.State = 4U;
15668
15669 /* During 'SendTPDT': '<S1034>:6' */
15670 if (L4_MABX_DW.temporalCounter_i1_m >= 1U) {
15671 /* Transition: '<S1034>:13' */
15672 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay1;
15673 L4_MABX_DW.temporalCounter_i1_m = 0U;
15674
15675 /* Entry 'InterframeDelay1': '<S1034>:12' */
15676 L4_MABX_B.State = 5U;
15677 L4_MABX_B.enTPDT = false;
15678 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_n;
15679 }
15680 break;
15681
15682 case L4_MABX_IN_StartMsg:
15683 /* During 'StartMsg': '<S1034>:30' */
15684 /* Transition: '<S1034>:31' */
15685 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPCM;
15686 L4_MABX_DW.temporalCounter_i1_m = 0U;
15687
15688 /* Entry 'SendTPCM': '<S1034>:5' */
15689 L4_MABX_B.State = 2U;
15690 L4_MABX_B.enTPCM = true;
15691 break;
15692
15693 default:
15694 L4_MABX_B.State = 7U;
15695
15696 /* During 'WaitForNextPeriod': '<S1034>:17' */
15697 if (L4_MABX_DW.temporalCounter_i1_m >= 185U) {
15698 /* Transition: '<S1034>:20' */
15699 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15700
15701 /* Entry 'StartMsg': '<S1034>:30' */
15702 L4_MABX_B.State = 1U;
15703 L4_MABX_B.TPDT_count = 1U;
15704 }
15705 break;
15706 }
15707 }
15708
15709 /* End of Chart: '<S834>/Chart' */
15710
15711 /* RelationalOperator: '<S1062>/Operator' incorporates:
15712 * Constant: '<S1053>/Constant2'
15713 */
15714 L4_MABX_B.Operator_eot = (L4_MABX_P.Constant2_Value_o == MABX_Mode);
15715
15716 /* S-Function (rti_commonblock): '<S1045>/S-Function1' */
15717 /* This comment workarounds a code generation problem */
15718
15719 /* write output state value to digital output channel 4 on port 1 */
15720 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4, (UInt16)
15721 (L4_MABX_B.Operator_eot << 3));
15722
15723 /* RateTransition: '<S1053>/TmpRTBAtANDInport1' */
15724 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
15725 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_DW.TmpRTBAtANDInport1_Buffer0;
15726 }
15727
15728 /* End of RateTransition: '<S1053>/TmpRTBAtANDInport1' */
15729
15730 /* Logic: '<S1053>/AND' */
15731 L4_MABX_B.AND_k = ((L4_MABX_B.TmpRTBAtANDInport1 != 0.0) && AutonomousEnabled);
15732
15733 /* Logic: '<S1053>/OR' */
15734 L4_MABX_B.OR = (AutonomousOutputEnabled || L4_MABX_B.AND_k);
15735
15736 /* S-Function (rti_commonblock): '<S1046>/S-Function1' */
15737 /* This comment workarounds a code generation problem */
15738
15739 /* write output state value to digital output channel 2 on port 1 */
15740 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2, (UInt16)
15741 (L4_MABX_B.OR << 1));
15742
15743 /* S-Function (rti_commonblock): '<S1047>/S-Function1' */
15744 /* This comment workarounds a code generation problem */
15745
15746 /* write output state value to digital output channel 1 on port 1 */
15747 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1, (UInt16)
15748 (EnableSw << 0));
15749
15750 /* RelationalOperator: '<S1061>/Operator' incorporates:
15751 * Constant: '<S1053>/Constant3'
15752 */
15753 L4_MABX_B.Operator_dr = (L4_MABX_P.Constant3_Value_iu == SupervisorMode);
15754
15755 /* S-Function (rti_commonblock): '<S1048>/S-Function1' */
15756 /* This comment workarounds a code generation problem */
15757
15758 /* write output state value to digital output channel 3 on port 1 */
15759 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3, (UInt16)
15760 (L4_MABX_B.Operator_dr << 2));
15761
15762 /* Logic: '<S1051>/Logical Operator' */
15763 L4_MABX_B.LogicalOperator_mf = !AutonomousOutputEnabled;
15764
15765 /* Outputs for Atomic SubSystem: '<S1051>/If_Then_Else4' */
15766
15767 /* Constant: '<S1051>/APTC_PEDAL_A_PWM_FREQ_HZ_APV' */
15768 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mf,
15769 L4_MABX_B.Pedal_1_pwm_freq_raw_value,
15770 L4_MABX_P.APTC_PEDAL_A_PWM_FREQ_HZ_APV_Va,
15771 &L4_MABX_B.If_Then_Else4);
15772
15773 /* End of Outputs for SubSystem: '<S1051>/If_Then_Else4' */
15774
15775 /* MinMax: '<S825>/MinMax' incorporates:
15776 * Constant: '<S825>/Constant2'
15777 */
15778 DeltaTime = L4_MABX_B.If_Then_Else4.Switch;
15779 PositionFinalLimited = L4_MABX_P.Constant2_Value_d;
15780 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15781 PositionFinalLimited = DeltaTime;
15782 }
15783
15784 L4_MABX_B.MinMax_o = PositionFinalLimited;
15785
15786 /* End of MinMax: '<S825>/MinMax' */
15787
15788 /* DataTypeConversion: '<S825>/Data Type Conversion1' */
15789 L4_MABX_B.DataTypeConversion1 = L4_MABX_B.MinMax_o;
15790
15791 /* Product: '<S825>/Divide' incorporates:
15792 * Constant: '<S825>/Constant3'
15793 */
15794 L4_MABX_B.Divide_l = L4_MABX_P.Constant3_Value_n5 /
15795 L4_MABX_B.DataTypeConversion1;
15796
15797 /* DataTypeConversion: '<S825>/Data Type Conversion5' */
15798 L4_MABX_B.PWMOut_P2C1_Period = L4_MABX_B.Divide_l;
15799
15800 /* Lookup_n-D: '<S1051>/1-D Lookup Table2' */
15801 L4_MABX_B.PedalPWMA_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_fh.Switch,
15802 L4_MABX_P.uDLookupTable2_bp01Data, L4_MABX_P.uDLookupTable2_tableData, 1U);
15803
15804 /* Outputs for Atomic SubSystem: '<S1051>/If_Then_Else1' */
15805 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mf,
15806 L4_MABX_B.Pedal_1_pwm_dc_raw_value,
15807 L4_MABX_B.PedalPWMA_DC_out, &L4_MABX_B.If_Then_Else1_o);
15808
15809 /* End of Outputs for SubSystem: '<S1051>/If_Then_Else1' */
15810
15811 /* Gain: '<S825>/Gain1' */
15812 L4_MABX_B.Gain1_d = L4_MABX_P.Gain1_Gain_dm * L4_MABX_B.If_Then_Else1_o.Switch;
15813
15814 /* DataTypeConversion: '<S825>/Data Type Conversion6' */
15815 L4_MABX_B.PWMOut_P2C1_DC = L4_MABX_B.Gain1_d;
15816
15817 /* S-Function (rti_commonblock): '<S1049>/S-Function1' */
15818 /* This comment workarounds a code generation problem */
15819
15820 /* write PWM Period and DutyCycle for output channel 1 on port 2 */
15821 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 1, (real_T)
15822 L4_MABX_B.PWMOut_P2C1_Period, (real_T)
15823 L4_MABX_B.PWMOut_P2C1_DC);
15824
15825 /* Outputs for Atomic SubSystem: '<S1051>/If_Then_Else5' */
15826
15827 /* Constant: '<S1051>/APTC_PEDAL_B_PWM_FREQ_HZ_APV' */
15828 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mf,
15829 L4_MABX_B.Pedal_2_pwm_freq_raw_value,
15830 L4_MABX_P.APTC_PEDAL_B_PWM_FREQ_HZ_APV_Va,
15831 &L4_MABX_B.If_Then_Else5);
15832
15833 /* End of Outputs for SubSystem: '<S1051>/If_Then_Else5' */
15834
15835 /* MinMax: '<S825>/MinMax1' incorporates:
15836 * Constant: '<S825>/Constant4'
15837 */
15838 DeltaTime = L4_MABX_B.If_Then_Else5.Switch;
15839 PositionFinalLimited = L4_MABX_P.Constant4_Value_bm;
15840 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15841 PositionFinalLimited = DeltaTime;
15842 }
15843
15844 L4_MABX_B.MinMax1_h = PositionFinalLimited;
15845
15846 /* End of MinMax: '<S825>/MinMax1' */
15847
15848 /* DataTypeConversion: '<S825>/Data Type Conversion2' */
15849 L4_MABX_B.DataTypeConversion2_i = L4_MABX_B.MinMax1_h;
15850
15851 /* Product: '<S825>/Divide1' incorporates:
15852 * Constant: '<S825>/Constant1'
15853 */
15854 L4_MABX_B.Divide1 = L4_MABX_P.Constant1_Value_b /
15855 L4_MABX_B.DataTypeConversion2_i;
15856
15857 /* DataTypeConversion: '<S825>/Data Type Conversion9' */
15858 L4_MABX_B.PWMOut_P2C2_Period = L4_MABX_B.Divide1;
15859
15860 /* Lookup_n-D: '<S1051>/1-D Lookup Table3' */
15861 L4_MABX_B.PedalPWMB_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_fh.Switch,
15862 L4_MABX_P.uDLookupTable3_bp01Data, L4_MABX_P.uDLookupTable3_tableData, 1U);
15863
15864 /* Outputs for Atomic SubSystem: '<S1051>/If_Then_Else2' */
15865 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_mf,
15866 L4_MABX_B.Pedal_2_pwm_dc_raw_value,
15867 L4_MABX_B.PedalPWMB_DC_out, &L4_MABX_B.If_Then_Else2_n);
15868
15869 /* End of Outputs for SubSystem: '<S1051>/If_Then_Else2' */
15870
15871 /* Gain: '<S825>/Gain' */
15872 L4_MABX_B.Gain_n = L4_MABX_P.Gain_Gain_lp * L4_MABX_B.If_Then_Else2_n.Switch;
15873
15874 /* DataTypeConversion: '<S825>/Data Type Conversion10' */
15875 L4_MABX_B.PWMOut_P2C2_DC = L4_MABX_B.Gain_n;
15876
15877 /* S-Function (rti_commonblock): '<S1050>/S-Function1' */
15878 /* This comment workarounds a code generation problem */
15879
15880 /* write PWM Period and DutyCycle for output channel 2 on port 2 */
15881 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 2, (real_T)
15882 L4_MABX_B.PWMOut_P2C2_Period, (real_T)
15883 L4_MABX_B.PWMOut_P2C2_DC);
15884
15885 /* S-Function (rti_commonblock): '<S732>/S-Function1' */
15886 /* This comment workarounds a code generation problem */
15887
15888 /* Gain: '<S411>/ShifterControlDC' */
15889 L4_MABX_B.ShiftControlDC = L4_MABX_P.ShifterControlDC_Gain *
15890 L4_MABX_B.SFunction1_o2_f;
15891
15892 /* RelationalOperator: '<S1052>/Relational Operator' incorporates:
15893 * Constant: '<S1052>/Constant'
15894 */
15895 L4_MABX_B.RelationalOperator_f = (L4_MABX_B.ShiftControlDC >=
15896 L4_MABX_P.Constant_Value_av);
15897
15898 /* RelationalOperator: '<S1052>/Relational Operator1' incorporates:
15899 * Constant: '<S1052>/Constant1'
15900 */
15901 L4_MABX_B.RelationalOperator1_d = (L4_MABX_B.ShiftControlDC <=
15902 L4_MABX_P.Constant1_Value_c4);
15903
15904 /* Logic: '<S1052>/Logical Operator' */
15905 L4_MABX_B.LogicalOperator_e = (L4_MABX_B.RelationalOperator_f &&
15906 L4_MABX_B.RelationalOperator1_d);
15907
15908 /* RelationalOperator: '<S1058>/Compare' incorporates:
15909 * Constant: '<S1058>/Constant'
15910 */
15911 L4_MABX_B.Compare_gm = (L4_MABX_B.SPN524_TransSelectedGear ==
15912 L4_MABX_P.Constant_Value_pl);
15913
15914 /* RelationalOperator: '<S1059>/Compare' incorporates:
15915 * Constant: '<S1059>/Constant'
15916 */
15917 L4_MABX_B.Compare_fp = (L4_MABX_B.SPN523_TransCurrentGear ==
15918 L4_MABX_P.Constant_Value_n1);
15919
15920 /* Logic: '<S1052>/Logical Operator1' */
15921 L4_MABX_B.LogicalOperator1_d = (L4_MABX_B.Compare_gm && L4_MABX_B.Compare_fp);
15922
15923 /* Outputs for Atomic SubSystem: '<S1052>/If_Then_Else' */
15924
15925 /* Constant: '<S1052>/F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT_APV' incorporates:
15926 * Constant: '<S1052>/Constant2'
15927 */
15928 L4_MABX_If_Then_Else3(L4_MABX_P.F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT,
15929 L4_MABX_B.LogicalOperator1_d,
15930 L4_MABX_P.Constant2_Value_ml, &L4_MABX_B.If_Then_Else_n);
15931
15932 /* End of Outputs for SubSystem: '<S1052>/If_Then_Else' */
15933
15934 /* Logic: '<S1052>/Logical Operator2' */
15935 L4_MABX_B.Neutral = (L4_MABX_B.LogicalOperator_e ||
15936 L4_MABX_B.If_Then_Else_n.Switch);
15937
15938 /* Logic: '<S825>/Logical Operator' */
15939 L4_MABX_B.LogicalOperator_b = !L4_MABX_B.Neutral;
15940
15941 /* Outputs for Enabled SubSystem: '<S568>/GNSSDOPs_011' incorporates:
15942 * EnablePort: '<S569>/Enable'
15943 */
15944 /* Constant: '<S436>/Constant' */
15945 if (L4_MABX_P.Constant_Value_b > 0.0) {
15946 /* S-Function (rti_commonblock): '<S569>/S-Function1' */
15947 /* This comment workarounds a code generation problem */
15948
15949 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815168 */
15950 {
15951 UInt32 *CAN_Msg;
15952 static dsfloat time_old = 0.0;
15953
15954 /* Read status and timestamp info (previous message) */
15955 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp !=
15956 time_old) {
15957 /* ... save timestamp info for the calculation of the RX status
15958 during the consecutive sample hit*/
15959 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].
15960 timestamp;
15961
15962 /* ... set the processed flag to one */
15963 L4_MABX_B.SFunction1_o7_j = 1.0;
15964 L4_MABX_B.SFunction1_o8_l = (real_T)
15965 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp;
15966 L4_MABX_B.SFunction1_o9_bi = (real_T)
15967 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].deltatime;
15968 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].data;
15969
15970 /* Decode CAN message */
15971 {
15972 {
15973 rtican_Signal_t CAN_Sgn;
15974
15975 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15976 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15977 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15978 L4_MABX_B.SFunction1_o1_ey = ((real_T) CAN_Sgn.UnsignedSgn);
15979
15980 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15981 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15982 CAN_Sgn.UnsignedSgn &= 0x00000007;
15983 L4_MABX_B.SFunction1_o2_nr = ((real_T) CAN_Sgn.UnsignedSgn);
15984
15985 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15986 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15987 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15988 CAN_Sgn.UnsignedSgn &= 0x00000007;
15989 L4_MABX_B.SFunction1_o3_ai = ((real_T) CAN_Sgn.UnsignedSgn);
15990
15991 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15992 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15993 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15994 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15995 if (CAN_Sgn.SignedSgn >> 15) {
15996 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15997 }
15998
15999 L4_MABX_B.SFunction1_o4_p1 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16000
16001 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
16002 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
16003 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
16004 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16005 if (CAN_Sgn.SignedSgn >> 15) {
16006 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16007 }
16008
16009 L4_MABX_B.SFunction1_o5_ba = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16010
16011 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
16012 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
16013 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
16014 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16015 if (CAN_Sgn.SignedSgn >> 15) {
16016 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16017 }
16018
16019 L4_MABX_B.SFunction1_o6_gn = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16020 }
16021 }
16022 } else {
16023 /* set RX status to 0 because no new message has arrived */
16024 L4_MABX_B.SFunction1_o7_j = 0.0;
16025 }
16026 }
16027 }
16028
16029 /* End of Outputs for SubSystem: '<S568>/GNSSDOPs_011' */
16030
16031 /* DataTypeConversion: '<S568>/Data Type Conversion8' */
16032 L4_MABX_B.RX_status_c = (L4_MABX_B.SFunction1_o7_j != 0.0);
16033
16034 /* Outputs for Enabled SubSystem: '<S568>/GNSSDOPs_1' incorporates:
16035 * EnablePort: '<S570>/Enable'
16036 */
16037 /* Constant: '<S436>/Constant' */
16038 if (L4_MABX_P.Constant_Value_b > 0.0) {
16039 /* S-Function (rti_commonblock): '<S570>/S-Function1' */
16040 /* This comment workarounds a code generation problem */
16041
16042 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815169 */
16043 {
16044 UInt32 *CAN_Msg;
16045 static dsfloat time_old = 0.0;
16046
16047 /* Read status and timestamp info (previous message) */
16048 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp !=
16049 time_old) {
16050 /* ... save timestamp info for the calculation of the RX status
16051 during the consecutive sample hit*/
16052 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].
16053 timestamp;
16054
16055 /* ... set the processed flag to one */
16056 L4_MABX_B.SFunction1_o7_hx = 1.0;
16057 L4_MABX_B.SFunction1_o8_br = (real_T)
16058 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp;
16059 L4_MABX_B.SFunction1_o9_ny = (real_T)
16060 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].deltatime;
16061 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].data;
16062
16063 /* Decode CAN message */
16064 {
16065 {
16066 rtican_Signal_t CAN_Sgn;
16067
16068 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
16069 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16070 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16071 L4_MABX_B.SFunction1_o1_d4 = ((real_T) CAN_Sgn.UnsignedSgn);
16072
16073 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
16074 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16075 CAN_Sgn.UnsignedSgn &= 0x00000007;
16076 L4_MABX_B.SFunction1_o2_ca = ((real_T) CAN_Sgn.UnsignedSgn);
16077
16078 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
16079 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16080 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
16081 CAN_Sgn.UnsignedSgn &= 0x00000007;
16082 L4_MABX_B.SFunction1_o3_dt = ((real_T) CAN_Sgn.UnsignedSgn);
16083
16084 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
16085 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16086 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
16087 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16088 if (CAN_Sgn.SignedSgn >> 15) {
16089 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16090 }
16091
16092 L4_MABX_B.SFunction1_o4_an = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16093
16094 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
16095 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
16096 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
16097 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16098 if (CAN_Sgn.SignedSgn >> 15) {
16099 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16100 }
16101
16102 L4_MABX_B.SFunction1_o5_pg = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16103
16104 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
16105 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
16106 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
16107 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16108 if (CAN_Sgn.SignedSgn >> 15) {
16109 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16110 }
16111
16112 L4_MABX_B.SFunction1_o6_e = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
16113 }
16114 }
16115 } else {
16116 /* set RX status to 0 because no new message has arrived */
16117 L4_MABX_B.SFunction1_o7_hx = 0.0;
16118 }
16119 }
16120 }
16121
16122 /* End of Outputs for SubSystem: '<S568>/GNSSDOPs_1' */
16123
16124 /* Switch: '<S568>/Switch' */
16125 if (L4_MABX_B.RX_status_c) {
16126 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_p1;
16127 } else {
16128 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_an;
16129 }
16130
16131 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
16132 /* RateTransition: '<S389>/TmpRTBAtCheckHDOPInport1' */
16133 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
16134 L4_MABX_B.HDOP__f = L4_MABX_B.HDOP_;
16135 L4_MABX_B.FrontAxleSpeed_d = L4_MABX_B.SFunction1_o1_h54;
16136 L4_MABX_B.FrontAxleSpeed_dv = L4_MABX_B.SFunction1_o1_h54;
16137 L4_MABX_B.FrontAxleSpeed_dvq = L4_MABX_B.SFunction1_o1_h54;
16138 L4_MABX_B.TmpRTBAtVehHeadingInport1 = YawRate;
16139 }
16140
16141 /* End of RateTransition: '<S389>/TmpRTBAtCheckHDOPInport1' */
16142 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
16143
16144 /* Switch: '<S391>/Switch2' incorporates:
16145 * Constant: '<S391>/No Data'
16146 * Switch: '<S391>/Switch6'
16147 * Switch: '<S391>/Switch7'
16148 * Switch: '<S391>/Switch8'
16149 */
16150 if (RTMapsOk) {
16151 /* Gain: '<S391>/m//s_to_km//h' */
16152 L4_MABX_B.ms_to_kmh = L4_MABX_P.ms_to_kmh_Gain *
16153 L4_MABX_B.Decoder_o1.CurrentVelocity;
16154 CurrentVelocity_kph = L4_MABX_B.ms_to_kmh;
16155
16156 /* Gain: '<S391>/for_logging4' */
16157 L4_MABX_B.for_logging4 = L4_MABX_P.for_logging4_Gain *
16158 L4_MABX_B.Decoder_o1.GPS_X;
16159 GPS_X = L4_MABX_B.for_logging4;
16160
16161 /* Gain: '<S391>/for_logging5' */
16162 L4_MABX_B.for_logging5 = L4_MABX_P.for_logging5_Gain *
16163 L4_MABX_B.Decoder_o1.GPS_Y;
16164 GPS_Y = L4_MABX_B.for_logging5;
16165
16166 /* Gain: '<S391>/for_logging6' */
16167 L4_MABX_B.for_logging6 = L4_MABX_P.for_logging6_Gain *
16168 L4_MABX_B.Decoder_o1.GPS_Time;
16169 GPS_Time = L4_MABX_B.for_logging6;
16170 } else {
16171 CurrentVelocity_kph = L4_MABX_P.NoData_Value;
16172 GPS_X = L4_MABX_P.NoData_Value;
16173 GPS_Y = L4_MABX_P.NoData_Value;
16174 GPS_Time = L4_MABX_P.NoData_Value;
16175 }
16176
16177 /* End of Switch: '<S391>/Switch2' */
16178
16179 /* S-Function (rti_commonblock): '<S403>/S-Function1' */
16180
16181 /* This comment workarounds a code generation problem */
16182
16183 /* End of Outputs for S-Function (rti_commonblock): '<S403>/S-Function1' */
16184
16185 /* S-Function (rti_commonblock): '<S409>/S-Function1' */
16186
16187 /* This comment workarounds a code generation problem */
16188
16189 /* End of Outputs for S-Function (rti_commonblock): '<S409>/S-Function1' */
16190
16191 /* S-Function (rti_commonblock): '<S393>/TRC Exclusion' */
16192 /* This comment workarounds a code generation problem */
16193
16194 /* S-Function (rti_commonblock): '<S394>/TRC Exclusion' */
16195 /* This comment workarounds a code generation problem */
16196
16197 /* UnitDelay: '<S3>/Unit_Delay' */
16198 L4_MABX_B.DesSteeringAngle = L4_MABX_DW.Unit_Delay_1_DSTATE;
16199 L4_MABX_B.Stanley_axleAngle2 = L4_MABX_DW.Unit_Delay_10_DSTATE;
16200 L4_MABX_B.SPN1760_GrossCombinationVehic_h = L4_MABX_DW.Unit_Delay_100_DSTATE;
16201 L4_MABX_B.ACCDistanceAlertSignal_o = L4_MABX_DW.Unit_Delay_101_DSTATE;
16202 L4_MABX_B.ForwardCollisionWarning_c = L4_MABX_DW.Unit_Delay_102_DSTATE;
16203 L4_MABX_B.SPN544_EngineReferenceTorque_g = L4_MABX_DW.Unit_Delay_103_DSTATE;
16204 L4_MABX_B.ROPEngCtrlActive = L4_MABX_DW.Unit_Delay_104_DSTATE;
16205 L4_MABX_B.ROPBrakeCtrlActive = L4_MABX_DW.Unit_Delay_105_DSTATE;
16206 L4_MABX_B.YCEngCtrlActive = L4_MABX_DW.Unit_Delay_106_DSTATE;
16207 L4_MABX_B.YCBrakeCtrlActive = L4_MABX_DW.Unit_Delay_107_DSTATE;
16208 L4_MABX_B.SPN1807_SteeringWheelAngle = L4_MABX_DW.Unit_Delay_108_DSTATE;
16209 L4_MABX_B.SPN1808_YawRate = L4_MABX_DW.Unit_Delay_109_DSTATE;
16210 L4_MABX_B.DesSteeringAngleTerm = L4_MABX_DW.Unit_Delay_11_DSTATE;
16211 L4_MABX_B.SPN1810_LongitudinalAcceleratio = L4_MABX_DW.Unit_Delay_110_DSTATE;
16212 L4_MABX_B.SteerWheelTurnCounter = L4_MABX_DW.Unit_Delay_111_DSTATE;
16213 L4_MABX_B.SteerWheelAngleSensorType = L4_MABX_DW.Unit_Delay_112_DSTATE;
16214 L4_MABX_B.LateralAcceleration = L4_MABX_DW.Unit_Delay_113_DSTATE;
16215 L4_MABX_B.BarometricPress = L4_MABX_DW.Unit_Delay_114_DSTATE;
16216 L4_MABX_B.AmbientAirTemp = L4_MABX_DW.Unit_Delay_115_DSTATE;
16217 L4_MABX_B.F_Truck1571_VIN_Match = L4_MABX_DW.Unit_Delay_116_DSTATE;
16218 L4_MABX_B.F_Truck166_VIN_Match = L4_MABX_DW.Unit_Delay_117_DSTATE;
16219 L4_MABX_B.PitchAngleExRange_m = L4_MABX_DW.Unit_Delay_118_DSTATE;
16220 L4_MABX_B.PX2_LanePosEstPosition = L4_MABX_DW.Unit_Delay_119_DSTATE;
16221 L4_MABX_B.DesSteeringDistTerm = L4_MABX_DW.Unit_Delay_12_DSTATE;
16222 L4_MABX_B.PX2_LanePosEstAngle = L4_MABX_DW.Unit_Delay_120_DSTATE;
16223 L4_MABX_B.PX2_LanePosEstNumPoints = L4_MABX_DW.Unit_Delay_121_DSTATE;
16224 L4_MABX_B.Latitude__c = L4_MABX_DW.Unit_Delay_122_DSTATE;
16225 L4_MABX_B.Longitude__m = L4_MABX_DW.Unit_Delay_123_DSTATE;
16226 L4_MABX_B.HDOP__o = L4_MABX_DW.Unit_Delay_124_DSTATE;
16227 L4_MABX_B.XPRControlMode_d = L4_MABX_DW.Unit_Delay_125_DSTATE;
16228 L4_MABX_B.XPRErrorState_d = L4_MABX_DW.Unit_Delay_126_DSTATE;
16229 L4_MABX_B.PressureP1_a = L4_MABX_DW.Unit_Delay_127_DSTATE;
16230 L4_MABX_B.PressureP4_h = L4_MABX_DW.Unit_Delay_128_DSTATE;
16231 L4_MABX_B.PressureP21_b = L4_MABX_DW.Unit_Delay_129_DSTATE;
16232 L4_MABX_B.numLanePoints = L4_MABX_DW.Unit_Delay_13_DSTATE;
16233 L4_MABX_B.PressureP22_e = L4_MABX_DW.Unit_Delay_130_DSTATE;
16234 L4_MABX_B.PressureP42_n = L4_MABX_DW.Unit_Delay_131_DSTATE;
16235 L4_MABX_B.ReAX_ActualHandwheelPos_p = L4_MABX_DW.Unit_Delay_132_DSTATE;
16236 L4_MABX_B.ReAX_EchoedSteerWheelPos_p = L4_MABX_DW.Unit_Delay_133_DSTATE;
16237 L4_MABX_B.RTMapsOk_p = L4_MABX_DW.Unit_Delay_134_DSTATE;
16238 L4_MABX_B.SupervisorMode_l = L4_MABX_DW.Unit_Delay_135_DSTATE;
16239 L4_MABX_B.CurrentAzimuth_rad_k = L4_MABX_DW.Unit_Delay_136_DSTATE;
16240 L4_MABX_B.TargetAzimuth_rad_i = L4_MABX_DW.Unit_Delay_137_DSTATE;
16241 L4_MABX_B.rawPositionError = L4_MABX_DW.Unit_Delay_14_DSTATE;
16242 L4_MABX_B.Curvature_a = L4_MABX_DW.Unit_Delay_140_DSTATE;
16243 L4_MABX_B.CrosstrackError_n = L4_MABX_DW.Unit_Delay_141_DSTATE;
16244 L4_MABX_B.slewedPosError = L4_MABX_DW.Unit_Delay_15_DSTATE;
16245 L4_MABX_B.previewSteeringAngle = L4_MABX_DW.Unit_Delay_16_DSTATE;
16246 L4_MABX_B.APTC_Pedal_torque_dem_value = L4_MABX_DW.Unit_Delay_17_DSTATE;
16247 L4_MABX_B.APTC_arb_pedal_low_idl_sw = L4_MABX_DW.Unit_Delay_18_DSTATE;
16248 L4_MABX_B.APTC_arb_pedal_position = L4_MABX_DW.Unit_Delay_19_DSTATE;
16249 L4_MABX_B.DesSteeringPID_Dterm = L4_MABX_DW.Unit_Delay_2_DSTATE;
16250 L4_MABX_B.signal1 = L4_MABX_DW.Unit_Delay_20_DSTATE;
16251 L4_MABX_B.PID_output = L4_MABX_DW.Unit_Delay_21_DSTATE;
16252 L4_MABX_B.PID_output_unlim = L4_MABX_DW.Unit_Delay_22_DSTATE;
16253 L4_MABX_B.PID_control_error = L4_MABX_DW.Unit_Delay_23_DSTATE;
16254 L4_MABX_B.PID_p_term = L4_MABX_DW.Unit_Delay_24_DSTATE;
16255 L4_MABX_B.PID_i_term = L4_MABX_DW.Unit_Delay_25_DSTATE;
16256 L4_MABX_B.PID_d_term = L4_MABX_DW.Unit_Delay_26_DSTATE;
16257 L4_MABX_B.PID_hold_i_term_f = L4_MABX_DW.Unit_Delay_27_DSTATE;
16258 L4_MABX_B.ThrottlePID_Y = L4_MABX_DW.Unit_Delay_28_DSTATE;
16259 L4_MABX_B.EngineSpeedTarget_Y = L4_MABX_DW.Unit_Delay_29_DSTATE;
16260 L4_MABX_B.DesSteeringPID_Iterm = L4_MABX_DW.Unit_Delay_3_DSTATE;
16261 L4_MABX_B.F_Ignition_relay_command = L4_MABX_DW.Unit_Delay_30_DSTATE;
16262 L4_MABX_B.F_Inverter_relay_command = L4_MABX_DW.Unit_Delay_31_DSTATE;
16263 L4_MABX_B.F_MABX_relay_command = L4_MABX_DW.Unit_Delay_32_DSTATE;
16264 L4_MABX_B.F_Sensor_relay_command = L4_MABX_DW.Unit_Delay_33_DSTATE;
16265 L4_MABX_B.BrkPedArbBrakeSwitch = L4_MABX_DW.Unit_Delay_34_DSTATE;
16266 L4_MABX_B.Accel_rate_ms2 = L4_MABX_DW.Unit_Delay_35_DSTATE;
16267 L4_MABX_B.BrakingControlActive = L4_MABX_DW.Unit_Delay_36_DSTATE;
16268 L4_MABX_B.F_Hold_brakes_at_zero = L4_MABX_DW.Unit_Delay_37_DSTATE;
16269 L4_MABX_B.BrakingPID_Y = L4_MABX_DW.Unit_Delay_38_DSTATE;
16270 L4_MABX_B.BrakingPID_Y_Direct_Pressure = L4_MABX_DW.Unit_Delay_39_DSTATE;
16271 L4_MABX_B.DesSteeringPID_Pterm = L4_MABX_DW.Unit_Delay_4_DSTATE;
16272 L4_MABX_B.VSPD_TARGET_KPH_APV_h = L4_MABX_DW.Unit_Delay_40_DSTATE;
16273 L4_MABX_B.Vehicle_speed_target = L4_MABX_DW.Unit_Delay_41_DSTATE;
16274 L4_MABX_B.VSPD_HYST_KPH_APV = L4_MABX_DW.Unit_Delay_42_DSTATE;
16275 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_APV = L4_MABX_DW.Unit_Delay_43_DSTATE;
16276 L4_MABX_B.ACCEL_LIM_MS2_APV = L4_MABX_DW.Unit_Delay_44_DSTATE;
16277 L4_MABX_B.AutonomousOutputEnabled_n = L4_MABX_DW.Unit_Delay_46_DSTATE;
16278 L4_MABX_B.DesSteeringPID_Y = L4_MABX_DW.Unit_Delay_5_DSTATE;
16279 L4_MABX_B.DesSteeringPID_e = L4_MABX_DW.Unit_Delay_6_DSTATE;
16280 L4_MABX_B.DeSteeringPID_Y2 = L4_MABX_DW.Unit_Delay_7_DSTATE;
16281 L4_MABX_B.CurvatureEst = L4_MABX_DW.Unit_Delay_8_DSTATE;
16282 L4_MABX_B.PedalPWMPos = L4_MABX_DW.Unit_Delay_82_DSTATE;
16283 L4_MABX_B.IgnitionKeySwitch_voltage_c = L4_MABX_DW.Unit_Delay_83_DSTATE;
16284 L4_MABX_B.BrakeSwitch_a = L4_MABX_DW.Unit_Delay_84_DSTATE;
16285 L4_MABX_B.Park_brake_switch = L4_MABX_DW.Unit_Delay_85_DSTATE;
16286 L4_MABX_B.CruiseCtrlEnableSwitch = L4_MABX_DW.Unit_Delay_86_DSTATE;
16287 L4_MABX_B.FrontAxleSpeed = L4_MABX_DW.Unit_Delay_87_DSTATE;
16288 L4_MABX_B.FrontAxleLeftWheelSpeed = L4_MABX_DW.Unit_Delay_88_DSTATE;
16289 L4_MABX_B.FrontAxleRightWheelSpeed = L4_MABX_DW.Unit_Delay_89_DSTATE;
16290 L4_MABX_B.Stanley_axleAngle = L4_MABX_DW.Unit_Delay_9_DSTATE;
16291 L4_MABX_B.EBSBrakeSwitch = L4_MABX_DW.Unit_Delay_90_DSTATE;
16292 L4_MABX_B.SPN524_TransSelectedGear_m = L4_MABX_DW.Unit_Delay_91_DSTATE;
16293 L4_MABX_B.SPN523_TransCurrentGear_n = L4_MABX_DW.Unit_Delay_92_DSTATE;
16294 L4_MABX_B.SPN526_TransActualGearRatio_f = L4_MABX_DW.Unit_Delay_93_DSTATE;
16295 L4_MABX_B.ActualEngPercentTorque = L4_MABX_DW.Unit_Delay_94_DSTATE;
16296 L4_MABX_B.ActlEngPrcntTrqueHighResolution = L4_MABX_DW.Unit_Delay_95_DSTATE;
16297 L4_MABX_B.EngSpeed = L4_MABX_DW.Unit_Delay_96_DSTATE;
16298 L4_MABX_B.DriversDemandEngPercentTorque = L4_MABX_DW.Unit_Delay_97_DSTATE;
16299 L4_MABX_B.SPN514_NominalFrictionPercent_g = L4_MABX_DW.Unit_Delay_98_DSTATE;
16300 L4_MABX_B.SPN2978_EstEngParasiticLosses_m = L4_MABX_DW.Unit_Delay_99_DSTATE;
16301
16302 /* DataTypeConversion: '<S521>/Data Type Conversion' */
16303 L4_MABX_B.DataTypeConversion_b = L4_MABX_B.DataTypeConversion_nd[0];
16304
16305 /* DataTypeConversion: '<S521>/Data Type Conversion1' */
16306 L4_MABX_B.DataTypeConversion1_jz = L4_MABX_B.DataTypeConversion_nd[1];
16307
16308 /* ArithShift: '<S521>/Shift Arithmetic' */
16309 L4_MABX_B.ShiftArithmetic_n = (uint16_T)(L4_MABX_B.DataTypeConversion1_jz << 8);
16310
16311 /* S-Function (sfix_bitop): '<S548>/Operator' */
16312 L4_MABX_B.Operator_pj = (uint16_T)(L4_MABX_B.DataTypeConversion_b |
16313 L4_MABX_B.ShiftArithmetic_n);
16314
16315 /* DataTypeConversion: '<S548>/DataType' */
16316 L4_MABX_B.DataType_ej = L4_MABX_B.Operator_pj;
16317
16318 /* DataTypeConversion: '<S521>/Data Type Conversion2' */
16319 L4_MABX_B.DataTypeConversion2_c = L4_MABX_B.DataType_ej;
16320
16321 /* Product: '<S521>/Product' incorporates:
16322 * Constant: '<S521>/Constant'
16323 */
16324 L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1 = L4_MABX_B.DataTypeConversion2_c *
16325 L4_MABX_P.Constant_Value_a1;
16326
16327 /* DataTypeConversion: '<S413>/Data Type Conversion' */
16328 L4_MABX_B.DataTypeConversion_h = L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1;
16329
16330 /* DataTypeConversion: '<S528>/Data Type Conversion' */
16331 L4_MABX_B.DataTypeConversion_f = L4_MABX_B.DataTypeConversion_nd[2];
16332
16333 /* Sum: '<S528>/Add' incorporates:
16334 * Constant: '<S528>/Constant'
16335 */
16336 L4_MABX_B.SPN539_EnginePercentTorqueAtIdl = L4_MABX_B.DataTypeConversion_f +
16337 L4_MABX_P.Constant_Value_gc;
16338
16339 /* DataTypeConversion: '<S413>/Data Type Conversion1' */
16340 L4_MABX_B.DataTypeConversion1_b = L4_MABX_B.SPN539_EnginePercentTorqueAtIdl;
16341
16342 /* DataTypeConversion: '<S525>/Data Type Conversion' */
16343 L4_MABX_B.DataTypeConversion_dz = L4_MABX_B.DataTypeConversion_nd[15];
16344
16345 /* DataTypeConversion: '<S525>/Data Type Conversion1' */
16346 L4_MABX_B.DataTypeConversion1_fh = L4_MABX_B.DataTypeConversion_nd[16];
16347
16348 /* ArithShift: '<S525>/Shift Arithmetic' */
16349 L4_MABX_B.ShiftArithmetic_l = (uint16_T)(L4_MABX_B.DataTypeConversion1_fh << 8);
16350
16351 /* S-Function (sfix_bitop): '<S550>/Operator' */
16352 L4_MABX_B.Operator_b3 = (uint16_T)(L4_MABX_B.DataTypeConversion_dz |
16353 L4_MABX_B.ShiftArithmetic_l);
16354
16355 /* DataTypeConversion: '<S550>/DataType' */
16356 L4_MABX_B.DataType_hc = L4_MABX_B.Operator_b3;
16357
16358 /* DataTypeConversion: '<S525>/Data Type Conversion2' */
16359 L4_MABX_B.DataTypeConversion2_o = L4_MABX_B.DataType_hc;
16360
16361 /* Product: '<S525>/Product' incorporates:
16362 * Constant: '<S525>/Constant'
16363 */
16364 L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi = L4_MABX_B.DataTypeConversion2_o *
16365 L4_MABX_P.Constant_Value_gu;
16366
16367 /* DataTypeConversion: '<S413>/Data Type Conversion10' */
16368 L4_MABX_B.DataTypeConversion10 = L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi;
16369
16370 /* DataTypeConversion: '<S526>/Data Type Conversion1' */
16371 L4_MABX_B.DataTypeConversion1_m = L4_MABX_B.DataTypeConversion_nd[17];
16372
16373 /* DataTypeConversion: '<S526>/Data Type Conversion3' */
16374 L4_MABX_B.DataTypeConversion3_d = L4_MABX_B.DataTypeConversion_nd[18];
16375
16376 /* ArithShift: '<S526>/Shift Arithmetic' */
16377 L4_MABX_B.ShiftArithmetic_c = (uint16_T)(L4_MABX_B.DataTypeConversion3_d << 8);
16378
16379 /* S-Function (sfix_bitop): '<S551>/Operator' */
16380 L4_MABX_B.Operator_k = (uint16_T)(L4_MABX_B.DataTypeConversion1_m |
16381 L4_MABX_B.ShiftArithmetic_c);
16382
16383 /* DataTypeConversion: '<S551>/DataType' */
16384 L4_MABX_B.DataType_bs = L4_MABX_B.Operator_k;
16385
16386 /* DataTypeConversion: '<S526>/Data Type Conversion2' */
16387 L4_MABX_B.DataTypeConversion2_k = L4_MABX_B.DataType_bs;
16388
16389 /* Product: '<S526>/Product' incorporates:
16390 * Constant: '<S526>/Constant'
16391 */
16392 L4_MABX_B.SPN545_EngineGainKpOfTheEndspee = L4_MABX_B.DataTypeConversion2_k *
16393 L4_MABX_P.Constant_Value_hd;
16394
16395 /* DataTypeConversion: '<S413>/Data Type Conversion11' */
16396 L4_MABX_B.DataTypeConversion11 = L4_MABX_B.SPN545_EngineGainKpOfTheEndspee;
16397
16398 /* DataTypeConversion: '<S529>/Data Type Conversion1' */
16399 L4_MABX_B.DataTypeConversion1_nm = L4_MABX_B.DataTypeConversion_nd[21];
16400
16401 /* DataTypeConversion: '<S529>/Data Type Conversion3' */
16402 L4_MABX_B.DataTypeConversion3_ae = L4_MABX_B.DataTypeConversion_nd[22];
16403
16404 /* ArithShift: '<S529>/Shift Arithmetic' */
16405 L4_MABX_B.ShiftArithmetic_p = (uint16_T)(L4_MABX_B.DataTypeConversion3_ae << 8);
16406
16407 /* S-Function (sfix_bitop): '<S553>/Operator' */
16408 L4_MABX_B.Operator_p1 = (uint16_T)(L4_MABX_B.DataTypeConversion1_nm |
16409 L4_MABX_B.ShiftArithmetic_p);
16410
16411 /* DataTypeConversion: '<S553>/DataType' */
16412 L4_MABX_B.DataType_el = L4_MABX_B.Operator_p1;
16413
16414 /* DataTypeConversion: '<S529>/Data Type Conversion2' */
16415 L4_MABX_B.DataTypeConversion2_l = L4_MABX_B.DataType_el;
16416
16417 /* Product: '<S529>/Product' incorporates:
16418 * Constant: '<S529>/Constant'
16419 */
16420 L4_MABX_B.SPN533_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_l *
16421 L4_MABX_P.Constant_Value_ar;
16422
16423 /* DataTypeConversion: '<S413>/Data Type Conversion13' */
16424 L4_MABX_B.DataTypeConversion13 = L4_MABX_B.SPN533_EngineMaximumMomentaryOv;
16425
16426 /* DataTypeConversion: '<S530>/Data Type Conversion2' */
16427 L4_MABX_B.DataTypeConversion2_e = L4_MABX_B.DataTypeConversion_nd[23];
16428
16429 /* Product: '<S530>/Product' incorporates:
16430 * Constant: '<S530>/Constant'
16431 */
16432 L4_MABX_B.SPN534_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_e *
16433 L4_MABX_P.Constant_Value_kl;
16434
16435 /* DataTypeConversion: '<S413>/Data Type Conversion14' */
16436 L4_MABX_B.DataTypeConversion14 = L4_MABX_B.SPN534_EngineMaximumMomentaryOv;
16437
16438 /* DataTypeConversion: '<S531>/Data Type Conversion2' */
16439 L4_MABX_B.DataTypeConversion2_m = L4_MABX_B.DataTypeConversion_nd[24];
16440
16441 /* Product: '<S531>/Product' incorporates:
16442 * Constant: '<S531>/Constant'
16443 */
16444 L4_MABX_B.SPN535_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_m *
16445 L4_MABX_P.Constant_Value_pt;
16446
16447 /* DataTypeConversion: '<S413>/Data Type Conversion15' */
16448 L4_MABX_B.DataTypeConversion15 = L4_MABX_B.SPN535_EngineRequestedSpeedCont;
16449
16450 /* DataTypeConversion: '<S532>/Data Type Conversion2' */
16451 L4_MABX_B.DataTypeConversion2_cb = L4_MABX_B.DataTypeConversion_nd[25];
16452
16453 /* Product: '<S532>/Product' incorporates:
16454 * Constant: '<S532>/Constant'
16455 */
16456 L4_MABX_B.SPN536_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_cb *
16457 L4_MABX_P.Constant_Value_kz;
16458
16459 /* DataTypeConversion: '<S413>/Data Type Conversion16' */
16460 L4_MABX_B.DataTypeConversion16 = L4_MABX_B.SPN536_EngineRequestedSpeedCont;
16461
16462 /* DataTypeConversion: '<S533>/Data Type Conversion' */
16463 L4_MABX_B.DataTypeConversion_hg = L4_MABX_B.DataTypeConversion_nd[26];
16464
16465 /* Sum: '<S533>/Add' incorporates:
16466 * Constant: '<S533>/Constant'
16467 */
16468 L4_MABX_B.SPN537_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_hg +
16469 L4_MABX_P.Constant_Value_n3;
16470
16471 /* DataTypeConversion: '<S413>/Data Type Conversion17' */
16472 L4_MABX_B.DataTypeConversion17 = L4_MABX_B.SPN537_EngineRequestedTorqueCon;
16473
16474 /* DataTypeConversion: '<S534>/Data Type Conversion' */
16475 L4_MABX_B.DataTypeConversion_ff = L4_MABX_B.DataTypeConversion_nd[27];
16476
16477 /* Sum: '<S534>/Add' incorporates:
16478 * Constant: '<S534>/Constant'
16479 */
16480 L4_MABX_B.SPN538_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_ff +
16481 L4_MABX_P.Constant_Value_hs;
16482
16483 /* DataTypeConversion: '<S413>/Data Type Conversion18' */
16484 L4_MABX_B.DataTypeConversion18 = L4_MABX_B.SPN538_EngineRequestedTorqueCon;
16485
16486 /* DataTypeConversion: '<S535>/Data Type Conversion1' */
16487 L4_MABX_B.DataTypeConversion1_em = L4_MABX_B.DataTypeConversion_nd[28];
16488
16489 /* DataTypeConversion: '<S535>/Data Type Conversion3' */
16490 L4_MABX_B.DataTypeConversion3_kp = L4_MABX_B.DataTypeConversion_nd[29];
16491
16492 /* ArithShift: '<S535>/Shift Arithmetic' */
16493 L4_MABX_B.ShiftArithmetic_cl = (uint16_T)(L4_MABX_B.DataTypeConversion3_kp <<
16494 8);
16495
16496 /* S-Function (sfix_bitop): '<S554>/Operator' */
16497 L4_MABX_B.Operator_ln = (uint16_T)(L4_MABX_B.DataTypeConversion1_em |
16498 L4_MABX_B.ShiftArithmetic_cl);
16499
16500 /* DataTypeConversion: '<S554>/DataType' */
16501 L4_MABX_B.DataType_ic = L4_MABX_B.Operator_ln;
16502
16503 /* DataTypeConversion: '<S535>/Data Type Conversion2' */
16504 L4_MABX_B.DataTypeConversion2_md = L4_MABX_B.DataType_ic;
16505
16506 /* Product: '<S535>/Product' incorporates:
16507 * Constant: '<S535>/Constant'
16508 */
16509 L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn = L4_MABX_B.DataTypeConversion2_md *
16510 L4_MABX_P.Constant_Value_ow;
16511
16512 /* DataTypeConversion: '<S413>/Data Type Conversion19' */
16513 L4_MABX_B.DataTypeConversion19 = L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn;
16514
16515 /* DataTypeConversion: '<S543>/Data Type Conversion' */
16516 L4_MABX_B.DataTypeConversion_pa = L4_MABX_B.DataTypeConversion_nd[3];
16517
16518 /* DataTypeConversion: '<S543>/Data Type Conversion1' */
16519 L4_MABX_B.DataTypeConversion1_do = L4_MABX_B.DataTypeConversion_nd[4];
16520
16521 /* ArithShift: '<S543>/Shift Arithmetic' */
16522 L4_MABX_B.ShiftArithmetic_k = (uint16_T)(L4_MABX_B.DataTypeConversion1_do << 8);
16523
16524 /* S-Function (sfix_bitop): '<S557>/Operator' */
16525 L4_MABX_B.Operator_ki = (uint16_T)(L4_MABX_B.DataTypeConversion_pa |
16526 L4_MABX_B.ShiftArithmetic_k);
16527
16528 /* DataTypeConversion: '<S557>/DataType' */
16529 L4_MABX_B.DataType_aw = L4_MABX_B.Operator_ki;
16530
16531 /* DataTypeConversion: '<S543>/Data Type Conversion2' */
16532 L4_MABX_B.DataTypeConversion2_n = L4_MABX_B.DataType_aw;
16533
16534 /* Product: '<S543>/Product' incorporates:
16535 * Constant: '<S543>/Constant'
16536 */
16537 L4_MABX_B.SPN528_EngineSpeedAtPoint2 = L4_MABX_B.DataTypeConversion2_n *
16538 L4_MABX_P.Constant_Value_bu;
16539
16540 /* DataTypeConversion: '<S413>/Data Type Conversion2' */
16541 L4_MABX_B.DataTypeConversion2_g = L4_MABX_B.SPN528_EngineSpeedAtPoint2;
16542
16543 /* DataTypeConversion: '<S536>/Data Type Conversion1' */
16544 L4_MABX_B.DataTypeConversion1_b1v = L4_MABX_B.DataTypeConversion_nd[30];
16545
16546 /* DataTypeConversion: '<S536>/Data Type Conversion3' */
16547 L4_MABX_B.DataTypeConversion3_b = L4_MABX_B.DataTypeConversion_nd[31];
16548
16549 /* ArithShift: '<S536>/Shift Arithmetic' */
16550 L4_MABX_B.ShiftArithmetic_b = (uint16_T)(L4_MABX_B.DataTypeConversion3_b << 8);
16551
16552 /* S-Function (sfix_bitop): '<S555>/Operator' */
16553 L4_MABX_B.Operator_o1 = (uint16_T)(L4_MABX_B.DataTypeConversion1_b1v |
16554 L4_MABX_B.ShiftArithmetic_b);
16555
16556 /* DataTypeConversion: '<S555>/DataType' */
16557 L4_MABX_B.DataType_po = L4_MABX_B.Operator_o1;
16558
16559 /* DataTypeConversion: '<S536>/Data Type Conversion2' */
16560 L4_MABX_B.DataTypeConversion2_f = L4_MABX_B.DataType_po;
16561
16562 /* Product: '<S536>/Product' incorporates:
16563 * Constant: '<S536>/Constant'
16564 */
16565 L4_MABX_B.SPN1794_EngineMomentOfInertia = L4_MABX_B.DataTypeConversion2_f *
16566 L4_MABX_P.Constant_Value_f3;
16567
16568 /* DataTypeConversion: '<S413>/Data Type Conversion20' */
16569 L4_MABX_B.DataTypeConversion20 = L4_MABX_B.SPN1794_EngineMomentOfInertia;
16570
16571 /* DataTypeConversion: '<S537>/Data Type Conversion' */
16572 L4_MABX_B.DataTypeConversion_p3 = L4_MABX_B.DataTypeConversion_nd[32];
16573
16574 /* DataTypeConversion: '<S537>/Data Type Conversion1' */
16575 L4_MABX_B.DataTypeConversion1_dj = L4_MABX_B.DataTypeConversion_nd[33];
16576
16577 /* ArithShift: '<S537>/Shift Arithmetic' */
16578 L4_MABX_B.ShiftArithmetic_o = (uint16_T)(L4_MABX_B.DataTypeConversion1_dj << 8);
16579
16580 /* S-Function (sfix_bitop): '<S556>/Operator' */
16581 L4_MABX_B.Operator_oy = (uint16_T)(L4_MABX_B.DataTypeConversion_p3 |
16582 L4_MABX_B.ShiftArithmetic_o);
16583
16584 /* DataTypeConversion: '<S556>/DataType' */
16585 L4_MABX_B.DataType_ai = L4_MABX_B.Operator_oy;
16586
16587 /* DataTypeConversion: '<S537>/Data Type Conversion2' */
16588 L4_MABX_B.SPN1846_EngineDefaultTorqueLimi = L4_MABX_B.DataType_ai;
16589
16590 /* DataTypeConversion: '<S413>/Data Type Conversion21' */
16591 L4_MABX_B.DataTypeConversion21 = L4_MABX_B.SPN1846_EngineDefaultTorqueLimi;
16592
16593 /* DataTypeConversion: '<S413>/Data Type Conversion22' */
16594 L4_MABX_B.DataTypeConversion22 = L4_MABX_B.DataTypeConversion_nd[34];
16595
16596 /* DataTypeConversion: '<S413>/Data Type Conversion23' */
16597 L4_MABX_B.DataTypeConversion23 = L4_MABX_B.DataTypeConversion_nd[35];
16598
16599 /* DataTypeConversion: '<S413>/Data Type Conversion24' */
16600 L4_MABX_B.DataTypeConversion24 = L4_MABX_B.DataTypeConversion_nd[36];
16601
16602 /* DataTypeConversion: '<S413>/Data Type Conversion25' */
16603 L4_MABX_B.DataTypeConversion25 = L4_MABX_B.DataTypeConversion_nd[37];
16604
16605 /* DataTypeConversion: '<S413>/Data Type Conversion26' */
16606 L4_MABX_B.DataTypeConversion26 = L4_MABX_B.DataTypeConversion_nd[38];
16607
16608 /* DataTypeConversion: '<S544>/Data Type Conversion' */
16609 L4_MABX_B.DataTypeConversion_m = L4_MABX_B.DataTypeConversion_nd[5];
16610
16611 /* Sum: '<S544>/Add' incorporates:
16612 * Constant: '<S544>/Constant'
16613 */
16614 L4_MABX_B.SPN540_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_m +
16615 L4_MABX_P.Constant_Value_fm;
16616
16617 /* DataTypeConversion: '<S413>/Data Type Conversion3' */
16618 L4_MABX_B.DataTypeConversion3 = L4_MABX_B.SPN540_EnginePercentTorqueAtPoi;
16619
16620 /* DataTypeConversion: '<S545>/Data Type Conversion' */
16621 L4_MABX_B.DataTypeConversion_pm = L4_MABX_B.DataTypeConversion_nd[6];
16622
16623 /* DataTypeConversion: '<S545>/Data Type Conversion1' */
16624 L4_MABX_B.DataTypeConversion1_bx = L4_MABX_B.DataTypeConversion_nd[7];
16625
16626 /* ArithShift: '<S545>/Shift Arithmetic' */
16627 L4_MABX_B.ShiftArithmetic_m = (uint16_T)(L4_MABX_B.DataTypeConversion1_bx << 8);
16628
16629 /* S-Function (sfix_bitop): '<S558>/Operator' */
16630 L4_MABX_B.Operator_lk = (uint16_T)(L4_MABX_B.DataTypeConversion_pm |
16631 L4_MABX_B.ShiftArithmetic_m);
16632
16633 /* DataTypeConversion: '<S558>/DataType' */
16634 L4_MABX_B.DataType_a3 = L4_MABX_B.Operator_lk;
16635
16636 /* DataTypeConversion: '<S545>/Data Type Conversion2' */
16637 L4_MABX_B.DataTypeConversion2_fr = L4_MABX_B.DataType_a3;
16638
16639 /* Product: '<S545>/Product' incorporates:
16640 * Constant: '<S545>/Constant'
16641 */
16642 L4_MABX_B.SPN529_EngineSpeedAtPoint3 = L4_MABX_B.DataTypeConversion2_fr *
16643 L4_MABX_P.Constant_Value_bo;
16644
16645 /* DataTypeConversion: '<S413>/Data Type Conversion4' */
16646 L4_MABX_B.DataTypeConversion4 = L4_MABX_B.SPN529_EngineSpeedAtPoint3;
16647
16648 /* DataTypeConversion: '<S546>/Data Type Conversion' */
16649 L4_MABX_B.DataTypeConversion_d = L4_MABX_B.DataTypeConversion_nd[8];
16650
16651 /* Sum: '<S546>/Add' incorporates:
16652 * Constant: '<S546>/Constant'
16653 */
16654 L4_MABX_B.SPN541_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_d +
16655 L4_MABX_P.Constant_Value_cs;
16656
16657 /* DataTypeConversion: '<S413>/Data Type Conversion5' */
16658 L4_MABX_B.DataTypeConversion5 = L4_MABX_B.SPN541_EnginePercentTorqueAtPoi;
16659
16660 /* DataTypeConversion: '<S547>/Data Type Conversion' */
16661 L4_MABX_B.DataTypeConversion_jw = L4_MABX_B.DataTypeConversion_nd[9];
16662
16663 /* DataTypeConversion: '<S547>/Data Type Conversion1' */
16664 L4_MABX_B.DataTypeConversion1_d3 = L4_MABX_B.DataTypeConversion_nd[10];
16665
16666 /* ArithShift: '<S547>/Shift Arithmetic' */
16667 L4_MABX_B.ShiftArithmetic_cf = (uint16_T)(L4_MABX_B.DataTypeConversion1_d3 <<
16668 8);
16669
16670 /* S-Function (sfix_bitop): '<S559>/Operator' */
16671 L4_MABX_B.Operator_iw = (uint16_T)(L4_MABX_B.DataTypeConversion_jw |
16672 L4_MABX_B.ShiftArithmetic_cf);
16673
16674 /* DataTypeConversion: '<S559>/DataType' */
16675 L4_MABX_B.DataType_iur = L4_MABX_B.Operator_iw;
16676
16677 /* DataTypeConversion: '<S547>/Data Type Conversion2' */
16678 L4_MABX_B.DataTypeConversion2_kg = L4_MABX_B.DataType_iur;
16679
16680 /* Product: '<S547>/Product' incorporates:
16681 * Constant: '<S547>/Constant'
16682 */
16683 L4_MABX_B.SPN530_EngineSpeedAtPoint4 = L4_MABX_B.DataTypeConversion2_kg *
16684 L4_MABX_P.Constant_Value_lp;
16685
16686 /* DataTypeConversion: '<S413>/Data Type Conversion6' */
16687 L4_MABX_B.DataTypeConversion6 = L4_MABX_B.SPN530_EngineSpeedAtPoint4;
16688
16689 /* DataTypeConversion: '<S522>/Data Type Conversion' */
16690 L4_MABX_B.DataTypeConversion_a = L4_MABX_B.DataTypeConversion_nd[11];
16691
16692 /* Sum: '<S522>/Add' incorporates:
16693 * Constant: '<S522>/Constant'
16694 */
16695 L4_MABX_B.SPN542_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_a +
16696 L4_MABX_P.Constant_Value_fj;
16697
16698 /* DataTypeConversion: '<S413>/Data Type Conversion7' */
16699 L4_MABX_B.DataTypeConversion7 = L4_MABX_B.SPN542_EnginePercentTorqueAtPoi;
16700
16701 /* DataTypeConversion: '<S523>/Data Type Conversion' */
16702 L4_MABX_B.DataTypeConversion_n = L4_MABX_B.DataTypeConversion_nd[12];
16703
16704 /* DataTypeConversion: '<S523>/Data Type Conversion1' */
16705 L4_MABX_B.DataTypeConversion1_fy = L4_MABX_B.DataTypeConversion_nd[13];
16706
16707 /* ArithShift: '<S523>/Shift Arithmetic' */
16708 L4_MABX_B.ShiftArithmetic_e = (uint16_T)(L4_MABX_B.DataTypeConversion1_fy << 8);
16709
16710 /* S-Function (sfix_bitop): '<S549>/Operator' */
16711 L4_MABX_B.Operator_cd = (uint16_T)(L4_MABX_B.DataTypeConversion_n |
16712 L4_MABX_B.ShiftArithmetic_e);
16713
16714 /* DataTypeConversion: '<S549>/DataType' */
16715 L4_MABX_B.DataType_d5 = L4_MABX_B.Operator_cd;
16716
16717 /* DataTypeConversion: '<S523>/Data Type Conversion2' */
16718 L4_MABX_B.DataTypeConversion2_ln = L4_MABX_B.DataType_d5;
16719
16720 /* Product: '<S523>/Product' incorporates:
16721 * Constant: '<S523>/Constant'
16722 */
16723 L4_MABX_B.SPN531_EngineSpeedAtPoint5 = L4_MABX_B.DataTypeConversion2_ln *
16724 L4_MABX_P.Constant_Value_e2;
16725
16726 /* DataTypeConversion: '<S413>/Data Type Conversion8' */
16727 L4_MABX_B.DataTypeConversion8 = L4_MABX_B.SPN531_EngineSpeedAtPoint5;
16728
16729 /* DataTypeConversion: '<S524>/Data Type Conversion' */
16730 L4_MABX_B.DataTypeConversion_g = L4_MABX_B.DataTypeConversion_nd[14];
16731
16732 /* Sum: '<S524>/Add' incorporates:
16733 * Constant: '<S524>/Constant'
16734 */
16735 L4_MABX_B.SPN543_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_g +
16736 L4_MABX_P.Constant_Value_j;
16737
16738 /* DataTypeConversion: '<S413>/Data Type Conversion9' */
16739 L4_MABX_B.DataTypeConversion9 = L4_MABX_B.SPN543_EnginePercentTorqueAtPoi;
16740
16741 /* DataTypeConversion: '<S470>/Data Type Conversion8' */
16742 L4_MABX_B.RX_status_f = (L4_MABX_B.SFunction1_o9_bh != 0.0);
16743
16744 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
16745 L4_MABX_B.RX_status_ea = L4_MABX_B.RX_status_f;
16746
16747 /* DataTypeConversion: '<S470>/Data Type Conversion9' */
16748 L4_MABX_B.RX_time = L4_MABX_B.SFunction1_o10_mc;
16749
16750 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
16751 L4_MABX_B.RX_time_a = L4_MABX_B.RX_time;
16752
16753 /* DataTypeConversion: '<S470>/Data Type Conversion10' */
16754 L4_MABX_B.RX_delta_time = L4_MABX_B.SFunction1_o11_ow;
16755
16756 /* MultiPortSwitch: '<S416>/Multiport_Switch' */
16757 L4_MABX_B.RX_delta_time_l = L4_MABX_B.RX_delta_time;
16758
16759 /* RelationalOperator: '<S474>/Operator' incorporates:
16760 * Constant: '<S416>/Constant'
16761 * Constant: '<S471>/Constant1'
16762 */
16763 L4_MABX_B.Operator_kt = (L4_MABX_P.Constant_Value_hw ==
16764 L4_MABX_P.Constant1_Value_c3);
16765
16766 /* RelationalOperator: '<S475>/Operator' incorporates:
16767 * Constant: '<S416>/Constant'
16768 * Constant: '<S471>/Constant2'
16769 */
16770 L4_MABX_B.Operator_n4 = (L4_MABX_P.Constant_Value_hw ==
16771 L4_MABX_P.Constant2_Value_n5);
16772
16773 /* RelationalOperator: '<S476>/Operator' incorporates:
16774 * Constant: '<S416>/Constant'
16775 * Constant: '<S471>/Constant3'
16776 */
16777 L4_MABX_B.Operator_bc = (L4_MABX_P.Constant_Value_hw ==
16778 L4_MABX_P.Constant3_Value_lh);
16779
16780 /* RelationalOperator: '<S477>/Operator' incorporates:
16781 * Constant: '<S416>/Constant'
16782 * Constant: '<S471>/Constant4'
16783 */
16784 L4_MABX_B.Operator_gf = (L4_MABX_P.Constant_Value_hw ==
16785 L4_MABX_P.Constant4_Value_c);
16786
16787 /* RelationalOperator: '<S478>/Operator' incorporates:
16788 * Constant: '<S416>/Constant'
16789 * Constant: '<S471>/Constant5'
16790 */
16791 L4_MABX_B.Operator_ih = (L4_MABX_P.Constant_Value_hw ==
16792 L4_MABX_P.Constant5_Value_n);
16793
16794 /* DataTypeConversion: '<S479>/Data Type Conversion9' */
16795 L4_MABX_B.RX_time_g = L4_MABX_B.SFunction1_o10_o;
16796
16797 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
16798 L4_MABX_B.RX_time_f = L4_MABX_B.RX_time_g;
16799
16800 /* DataTypeConversion: '<S479>/Data Type Conversion10' */
16801 L4_MABX_B.RX_delta_time_c = L4_MABX_B.SFunction1_o11_j;
16802
16803 /* MultiPortSwitch: '<S417>/Multiport_Switch' */
16804 L4_MABX_B.RX_delta_time_n = L4_MABX_B.RX_delta_time_c;
16805
16806 /* RelationalOperator: '<S483>/Operator' incorporates:
16807 * Constant: '<S417>/Constant'
16808 * Constant: '<S480>/Constant1'
16809 */
16810 L4_MABX_B.Operator_al = (L4_MABX_P.Constant_Value_ek ==
16811 L4_MABX_P.Constant1_Value_ke);
16812
16813 /* RelationalOperator: '<S484>/Operator' incorporates:
16814 * Constant: '<S417>/Constant'
16815 * Constant: '<S480>/Constant2'
16816 */
16817 L4_MABX_B.Operator_n3 = (L4_MABX_P.Constant_Value_ek ==
16818 L4_MABX_P.Constant2_Value_gm);
16819
16820 /* RelationalOperator: '<S485>/Operator' incorporates:
16821 * Constant: '<S417>/Constant'
16822 * Constant: '<S480>/Constant3'
16823 */
16824 L4_MABX_B.Operator_nf = (L4_MABX_P.Constant_Value_ek ==
16825 L4_MABX_P.Constant3_Value_dw);
16826
16827 /* RelationalOperator: '<S486>/Operator' incorporates:
16828 * Constant: '<S417>/Constant'
16829 * Constant: '<S480>/Constant4'
16830 */
16831 L4_MABX_B.Operator_jb = (L4_MABX_P.Constant_Value_ek ==
16832 L4_MABX_P.Constant4_Value_k);
16833
16834 /* RelationalOperator: '<S487>/Operator' incorporates:
16835 * Constant: '<S417>/Constant'
16836 * Constant: '<S480>/Constant5'
16837 */
16838 L4_MABX_B.Operator_ktb = (L4_MABX_P.Constant_Value_ek ==
16839 L4_MABX_P.Constant5_Value_e);
16840
16841 /* DataTypeConversion: '<S488>/Data Type Conversion1' */
16842 L4_MABX_B.SpeedOfForwardVehicle = L4_MABX_B.SFunction1_o1_o5;
16843
16844 /* DataTypeConversion: '<S488>/Data Type Conversion10' */
16845 L4_MABX_B.RX_delta_time_f = L4_MABX_B.SFunction1_o13_ip;
16846
16847 /* DataTypeConversion: '<S488>/Data Type Conversion11' */
16848 L4_MABX_B.ACCSystemShutoffWarning = L4_MABX_B.SFunction1_o8_kw;
16849
16850 /* DataTypeConversion: '<S488>/Data Type Conversion2' */
16851 L4_MABX_B.DistanceToForwardVehicle = L4_MABX_B.SFunction1_o2_l4;
16852
16853 /* DataTypeConversion: '<S488>/Data Type Conversion3' */
16854 L4_MABX_B.AdaptiveCruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o3_lm3;
16855
16856 /* DataTypeConversion: '<S488>/Data Type Conversion4' */
16857 L4_MABX_B.AdaptiveCruiseCtrlMode = L4_MABX_B.SFunction1_o4_go;
16858
16859 /* DataTypeConversion: '<S488>/Data Type Conversion5' */
16860 L4_MABX_B.AdptveCruiseCtrlSetDistanceMode = L4_MABX_B.SFunction1_o5_hv;
16861
16862 /* DataTypeConversion: '<S488>/Data Type Conversion6' */
16863 L4_MABX_B.RoadCurvature = L4_MABX_B.SFunction1_o6_p3;
16864
16865 /* DataTypeConversion: '<S488>/Data Type Conversion7' */
16866 L4_MABX_B.ACCTargetDetected = L4_MABX_B.SFunction1_o7_lo;
16867
16868 /* DataTypeConversion: '<S488>/Data Type Conversion8' */
16869 L4_MABX_B.RX_status_g = (L4_MABX_B.SFunction1_o11_o != 0.0);
16870
16871 /* DataTypeConversion: '<S488>/Data Type Conversion9' */
16872 L4_MABX_B.RX_time_j = L4_MABX_B.SFunction1_o12_h;
16873
16874 /* Outputs for Enabled SubSystem: '<S490>/AEBS1_A0' incorporates:
16875 * EnablePort: '<S491>/Enable'
16876 */
16877 /* Constant: '<S419>/Constant' */
16878 if (L4_MABX_P.Constant_Value_km) {
16879 /* S-Function (rti_commonblock): '<S491>/S-Function1' */
16880 /* This comment workarounds a code generation problem */
16881
16882 /* dSPACE RTICAN RX Message Block: "AEBS1_A0" Id:217067306 */
16883 {
16884 UInt32 *CAN_Msg;
16885 static dsfloat time_old = 0.0;
16886
16887 /* Read status and timestamp info (previous message) */
16888 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp !=
16889 time_old) {
16890 /* ... save timestamp info for the calculation of the RX status
16891 during the consecutive sample hit*/
16892 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].
16893 timestamp;
16894
16895 /* ... set the processed flag to one */
16896 L4_MABX_B.SFunction1_o6_b3d = 1.0;
16897 L4_MABX_B.SFunction1_o7_hh = (real_T)
16898 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp;
16899 L4_MABX_B.SFunction1_o8_c = (real_T)
16900 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].deltatime;
16901 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].data;
16902
16903 /* Decode CAN message */
16904 {
16905 {
16906 rtican_Signal_t CAN_Sgn;
16907
16908 /* ...... "AdvEmergencyBrkSysState" (0|4, standard signal, unsigned int, little endian) */
16909 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16910 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16911 L4_MABX_B.SFunction1_o1_mj = ((real_T) CAN_Sgn.UnsignedSgn);
16912
16913 /* ...... "CollisionWarningLevel" (4|4, standard signal, unsigned int, little endian) */
16914 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16915 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16916 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16917 L4_MABX_B.SFunction1_o2_akn = ((real_T) CAN_Sgn.UnsignedSgn);
16918
16919 /* ...... "RelObjctDetForAdvEmergBrakingSys" (8|3, standard signal, unsigned int, little endian) */
16920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16921 CAN_Sgn.UnsignedSgn &= 0x00000007;
16922 L4_MABX_B.SFunction1_o3_ck = ((real_T) CAN_Sgn.UnsignedSgn);
16923
16924 /* ...... "BendOffProbabOfRelevantObject" (12|3, standard signal, unsigned int, little endian) */
16925 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16926 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16927 CAN_Sgn.UnsignedSgn &= 0x00000007;
16928 L4_MABX_B.SFunction1_o4_n0 = ((real_T) CAN_Sgn.UnsignedSgn);
16929
16930 /* ...... "TimeToCollisionWithRelevantObj" (16|8, standard signal, unsigned int, little endian) */
16931 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16932 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16933 L4_MABX_B.SFunction1_o5_pv = ((real_T) CAN_Sgn.UnsignedSgn);
16934 }
16935 }
16936 } else {
16937 /* set RX status to 0 because no new message has arrived */
16938 L4_MABX_B.SFunction1_o6_b3d = 0.0;
16939 }
16940 }
16941 }
16942
16943 /* End of Constant: '<S419>/Constant' */
16944 /* End of Outputs for SubSystem: '<S490>/AEBS1_A0' */
16945
16946 /* DataTypeConversion: '<S490>/Data Type Conversion10' */
16947 L4_MABX_B.RX_delta_time_p = L4_MABX_B.SFunction1_o8_c;
16948
16949 /* DataTypeConversion: '<S490>/Data Type Conversion8' */
16950 L4_MABX_B.RX_status_m = (L4_MABX_B.SFunction1_o6_b3d != 0.0);
16951
16952 /* DataTypeConversion: '<S490>/Data Type Conversion9' */
16953 L4_MABX_B.RX_time_n = L4_MABX_B.SFunction1_o7_hh;
16954
16955 /* DataTypeConversion: '<S492>/Data Type Conversion10' */
16956 L4_MABX_B.RX_delta_time_k = L4_MABX_B.SFunction1_o11_a;
16957
16958 /* DataTypeConversion: '<S492>/Data Type Conversion8' */
16959 L4_MABX_B.RX_status_k = (L4_MABX_B.SFunction1_o9_g != 0.0);
16960
16961 /* DataTypeConversion: '<S492>/Data Type Conversion9' */
16962 L4_MABX_B.RX_time_k = L4_MABX_B.SFunction1_o10_fpb;
16963
16964 /* DataTypeConversion: '<S494>/Data Type Conversion10' */
16965 L4_MABX_B.RX_delta_time_fg = L4_MABX_B.SFunction1_o8_ko;
16966
16967 /* DataTypeConversion: '<S494>/Data Type Conversion8' */
16968 L4_MABX_B.RX_status_h = (L4_MABX_B.SFunction1_o6_pf != 0.0);
16969
16970 /* DataTypeConversion: '<S494>/Data Type Conversion9' */
16971 L4_MABX_B.RX_time_b = L4_MABX_B.SFunction1_o7_nx;
16972
16973 /* Outputs for Enabled SubSystem: '<S496>/B2' incorporates:
16974 * EnablePort: '<S497>/Enable'
16975 */
16976 /* Constant: '<S422>/Constant' */
16977 if (L4_MABX_P.Constant_Value_lx > 0.0) {
16978 /* S-Function (rti_commonblock): '<S497>/S-Function1' */
16979 /* This comment workarounds a code generation problem */
16980
16981 /* dSPACE RTICAN RX Message Block: "B2" Id:418451505 */
16982 {
16983 UInt32 *CAN_Msg;
16984 static dsfloat time_old = 0.0;
16985
16986 /* Read status and timestamp info (previous message) */
16987 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp !=
16988 time_old) {
16989 /* ... save timestamp info for the calculation of the RX status
16990 during the consecutive sample hit*/
16991 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].
16992 timestamp;
16993
16994 /* ... set the processed flag to one */
16995 L4_MABX_B.SFunction1_o3_g3 = 1.0;
16996 L4_MABX_B.SFunction1_o4_n5 = (real_T)
16997 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp;
16998 L4_MABX_B.SFunction1_o5_dg = (real_T)
16999 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].deltatime;
17000 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].data;
17001
17002 /* Decode CAN message */
17003 {
17004 {
17005 rtican_Signal_t CAN_Sgn;
17006
17007 /* ...... "BrakeAppPressDemanded" (0|16, standard signal, unsigned int, little endian) */
17008 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17009 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
17010 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17011 L4_MABX_B.SFunction1_o1_cv = 0.1 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17012
17013 /* ...... "BrakeSwitch2" (16|2, standard signal, unsigned int, little endian) */
17014 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17015 CAN_Sgn.UnsignedSgn &= 0x00000003;
17016 L4_MABX_B.SFunction1_o2_nk = ((real_T) CAN_Sgn.UnsignedSgn);
17017 }
17018 }
17019 } else {
17020 /* set RX status to 0 because no new message has arrived */
17021 L4_MABX_B.SFunction1_o3_g3 = 0.0;
17022 }
17023 }
17024 }
17025
17026 /* End of Constant: '<S422>/Constant' */
17027 /* End of Outputs for SubSystem: '<S496>/B2' */
17028
17029 /* DataTypeConversion: '<S496>/Data Type Conversion10' */
17030 L4_MABX_B.RX_delta_time_e = L4_MABX_B.SFunction1_o5_dg;
17031
17032 /* DataTypeConversion: '<S496>/Data Type Conversion8' */
17033 L4_MABX_B.RX_status_fo = (L4_MABX_B.SFunction1_o3_g3 != 0.0);
17034
17035 /* DataTypeConversion: '<S496>/Data Type Conversion9' */
17036 L4_MABX_B.RX_time_h = L4_MABX_B.SFunction1_o4_n5;
17037
17038 /* Outputs for Enabled SubSystem: '<S498>/Tracks' incorporates:
17039 * EnablePort: '<S499>/Enable'
17040 */
17041 /* Constant: '<S423>/Constant' */
17042 if (L4_MABX_P.Constant_Value_aa) {
17043 /* S-Function (rti_commonblock): '<S499>/S-Function1' */
17044 /* This comment workarounds a code generation problem */
17045
17046 /* dSPACE RTICAN RX Message Block: "Tracks" Id:1635 */
17047 {
17048 UInt32 *CAN_Msg;
17049 static dsfloat time_old = 0.0;
17050
17051 /* Read status and timestamp info (previous message) */
17052 if (can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp !=
17053 time_old) {
17054 /* ... save timestamp info for the calculation of the RX status
17055 during the consecutive sample hit*/
17056 time_old = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
17057
17058 /* ... set the processed flag to one */
17059 L4_MABX_B.SFunction1_o72 = 1.0;
17060 L4_MABX_B.SFunction1_o73 = (real_T)
17061 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
17062 L4_MABX_B.SFunction1_o74 = (real_T)
17063 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].deltatime;
17064 CAN_Msg = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].data;
17065
17066 /* Decode CAN message */
17067 {
17068 {
17069 rtican_Signal_t CAN_Sgn;
17070 UInt32 modeSignal;
17071
17072 /* ...... "track_multiplexor" (56|8, mode signal, unsigned int, motorola back.) */
17073 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17074 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17075 L4_MABX_B.SFunction1_o71 = ((real_T) CAN_Sgn.UnsignedSgn);
17076 modeSignal = (UInt32) L4_MABX_B.SFunction1_o71;
17077 if (modeSignal == 4) {
17078 /* ...... "tr0_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17079 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17080 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17081 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17082 L4_MABX_B.SFunction1_o1_ps = ((real_T) CAN_Sgn.UnsignedSgn);
17083 }
17084
17085 if (modeSignal == 5) {
17086 /* ...... "tr0_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17087 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17088 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17089 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17090 if (CAN_Sgn.SignedSgn >> 15) {
17091 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17092 }
17093
17094 L4_MABX_B.SFunction1_o2_dos = 0.001 * ( ((real_T)
17095 CAN_Sgn.SignedSgn) );
17096 }
17097
17098 if (modeSignal == 12) {
17099 /* ...... "tr1_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17100 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17101 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17102 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17103 L4_MABX_B.SFunction1_o3_hy = ((real_T) CAN_Sgn.UnsignedSgn);
17104 }
17105
17106 if (modeSignal == 13) {
17107 /* ...... "tr1_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17108 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17109 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17110 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17111 if (CAN_Sgn.SignedSgn >> 15) {
17112 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17113 }
17114
17115 L4_MABX_B.SFunction1_o4_l1 = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17116 );
17117 }
17118
17119 if (modeSignal == 20) {
17120 /* ...... "tr2_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17121 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17122 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17123 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17124 L4_MABX_B.SFunction1_o5_nc = ((real_T) CAN_Sgn.UnsignedSgn);
17125 }
17126
17127 if (modeSignal == 21) {
17128 /* ...... "tr2_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17129 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17130 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17131 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17132 if (CAN_Sgn.SignedSgn >> 15) {
17133 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17134 }
17135
17136 L4_MABX_B.SFunction1_o6_cd = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17137 );
17138 }
17139
17140 if (modeSignal == 28) {
17141 /* ...... "tr3_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17142 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17143 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17144 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17145 L4_MABX_B.SFunction1_o7_jr = ((real_T) CAN_Sgn.UnsignedSgn);
17146 }
17147
17148 if (modeSignal == 29) {
17149 /* ...... "tr3_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17150 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17151 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17152 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17153 if (CAN_Sgn.SignedSgn >> 15) {
17154 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17155 }
17156
17157 L4_MABX_B.SFunction1_o8_g = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17158 );
17159 }
17160
17161 if (modeSignal == 36) {
17162 /* ...... "tr4_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17163 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17164 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17165 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17166 L4_MABX_B.SFunction1_o9_oh = ((real_T) CAN_Sgn.UnsignedSgn);
17167 }
17168
17169 if (modeSignal == 37) {
17170 /* ...... "tr4_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17171 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17172 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17173 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17174 if (CAN_Sgn.SignedSgn >> 15) {
17175 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17176 }
17177
17178 L4_MABX_B.SFunction1_o10_l4 = 0.001 * ( ((real_T)
17179 CAN_Sgn.SignedSgn) );
17180 }
17181
17182 if (modeSignal == 44) {
17183 /* ...... "tr5_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17184 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17185 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17186 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17187 L4_MABX_B.SFunction1_o11_k = ((real_T) CAN_Sgn.UnsignedSgn);
17188 }
17189
17190 if (modeSignal == 45) {
17191 /* ...... "tr5_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17192 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17193 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17194 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17195 if (CAN_Sgn.SignedSgn >> 15) {
17196 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17197 }
17198
17199 L4_MABX_B.SFunction1_o12_b = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17200 );
17201 }
17202
17203 if (modeSignal == 52) {
17204 /* ...... "tr6_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17205 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17206 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17207 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17208 L4_MABX_B.SFunction1_o13_m = ((real_T) CAN_Sgn.UnsignedSgn);
17209 }
17210
17211 if (modeSignal == 53) {
17212 /* ...... "tr6_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17213 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17214 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17215 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17216 if (CAN_Sgn.SignedSgn >> 15) {
17217 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17218 }
17219
17220 L4_MABX_B.SFunction1_o14_n = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17221 );
17222 }
17223
17224 if (modeSignal == 60) {
17225 /* ...... "tr7_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17226 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17227 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17228 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17229 L4_MABX_B.SFunction1_o15_p = ((real_T) CAN_Sgn.UnsignedSgn);
17230 }
17231
17232 if (modeSignal == 61) {
17233 /* ...... "tr7_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17234 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17235 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17236 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17237 if (CAN_Sgn.SignedSgn >> 15) {
17238 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17239 }
17240
17241 L4_MABX_B.SFunction1_o16_b = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17242 );
17243 }
17244
17245 if (modeSignal == 68) {
17246 /* ...... "tr8_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17247 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17248 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17249 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17250 L4_MABX_B.SFunction1_o17_f = ((real_T) CAN_Sgn.UnsignedSgn);
17251 }
17252
17253 if (modeSignal == 69) {
17254 /* ...... "tr8_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17256 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17257 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17258 if (CAN_Sgn.SignedSgn >> 15) {
17259 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17260 }
17261
17262 L4_MABX_B.SFunction1_o18_p = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17263 );
17264 }
17265
17266 if (modeSignal == 76) {
17267 /* ...... "tr9_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17268 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17269 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17270 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17271 L4_MABX_B.SFunction1_o19_kc = ((real_T) CAN_Sgn.UnsignedSgn);
17272 }
17273
17274 if (modeSignal == 77) {
17275 /* ...... "tr9_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17276 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17277 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17278 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17279 if (CAN_Sgn.SignedSgn >> 15) {
17280 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17281 }
17282
17283 L4_MABX_B.SFunction1_o20_m = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17284 );
17285 }
17286
17287 if (modeSignal == 6) {
17288 /* ...... "tr0_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17289 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17290 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17291 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17292 CAN_Sgn.SignedSgn &= 0x000003FF;
17293 if (CAN_Sgn.SignedSgn >> 9) {
17294 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17295 }
17296
17297 L4_MABX_B.SFunction1_o21_o = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17298 }
17299
17300 if (modeSignal == 14) {
17301 /* ...... "tr1_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17302 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17303 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17304 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17305 CAN_Sgn.SignedSgn &= 0x000003FF;
17306 if (CAN_Sgn.SignedSgn >> 9) {
17307 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17308 }
17309
17310 L4_MABX_B.SFunction1_o22_o = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17311 }
17312
17313 if (modeSignal == 22) {
17314 /* ...... "tr2_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17315 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17316 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17317 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17318 CAN_Sgn.SignedSgn &= 0x000003FF;
17319 if (CAN_Sgn.SignedSgn >> 9) {
17320 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17321 }
17322
17323 L4_MABX_B.SFunction1_o23_o = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17324 }
17325
17326 if (modeSignal == 30) {
17327 /* ...... "tr3_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17328 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17329 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17330 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17331 CAN_Sgn.SignedSgn &= 0x000003FF;
17332 if (CAN_Sgn.SignedSgn >> 9) {
17333 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17334 }
17335
17336 L4_MABX_B.SFunction1_o24_n = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17337 }
17338
17339 if (modeSignal == 38) {
17340 /* ...... "tr4_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17341 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17342 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17343 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17344 CAN_Sgn.SignedSgn &= 0x000003FF;
17345 if (CAN_Sgn.SignedSgn >> 9) {
17346 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17347 }
17348
17349 L4_MABX_B.SFunction1_o25_n = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17350 }
17351
17352 if (modeSignal == 46) {
17353 /* ...... "tr5_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17354 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17355 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17356 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17357 CAN_Sgn.SignedSgn &= 0x000003FF;
17358 if (CAN_Sgn.SignedSgn >> 9) {
17359 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17360 }
17361
17362 L4_MABX_B.SFunction1_o26_c = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17363 }
17364
17365 if (modeSignal == 54) {
17366 /* ...... "tr6_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17367 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17368 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17369 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17370 CAN_Sgn.SignedSgn &= 0x000003FF;
17371 if (CAN_Sgn.SignedSgn >> 9) {
17372 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17373 }
17374
17375 L4_MABX_B.SFunction1_o27_e = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17376 }
17377
17378 if (modeSignal == 62) {
17379 /* ...... "tr7_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17380 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17381 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17382 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17383 CAN_Sgn.SignedSgn &= 0x000003FF;
17384 if (CAN_Sgn.SignedSgn >> 9) {
17385 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17386 }
17387
17388 L4_MABX_B.SFunction1_o28_m = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17389 }
17390
17391 if (modeSignal == 70) {
17392 /* ...... "tr8_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17393 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17394 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17395 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17396 CAN_Sgn.SignedSgn &= 0x000003FF;
17397 if (CAN_Sgn.SignedSgn >> 9) {
17398 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17399 }
17400
17401 L4_MABX_B.SFunction1_o29 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17402 }
17403
17404 if (modeSignal == 78) {
17405 /* ...... "tr9_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17406 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17407 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17408 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17409 CAN_Sgn.SignedSgn &= 0x000003FF;
17410 if (CAN_Sgn.SignedSgn >> 9) {
17411 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17412 }
17413
17414 L4_MABX_B.SFunction1_o30 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17415 }
17416
17417 if (modeSignal == 4) {
17418 /* ...... "tr0_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17419 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17420 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17421 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17422 L4_MABX_B.SFunction1_o31 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17423 );
17424 }
17425
17426 if (modeSignal == 12) {
17427 /* ...... "tr1_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17428 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17429 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17430 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17431 L4_MABX_B.SFunction1_o32 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17432 );
17433 }
17434
17435 if (modeSignal == 20) {
17436 /* ...... "tr2_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17437 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17438 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17439 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17440 L4_MABX_B.SFunction1_o33 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17441 );
17442 }
17443
17444 if (modeSignal == 28) {
17445 /* ...... "tr3_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17446 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17447 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17448 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17449 L4_MABX_B.SFunction1_o34 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17450 );
17451 }
17452
17453 if (modeSignal == 36) {
17454 /* ...... "tr4_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17455 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17456 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17457 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17458 L4_MABX_B.SFunction1_o35 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17459 );
17460 }
17461
17462 if (modeSignal == 44) {
17463 /* ...... "tr5_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17464 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17465 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17466 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17467 L4_MABX_B.SFunction1_o36 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17468 );
17469 }
17470
17471 if (modeSignal == 52) {
17472 /* ...... "tr6_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17473 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17474 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17475 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17476 L4_MABX_B.SFunction1_o37 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17477 );
17478 }
17479
17480 if (modeSignal == 60) {
17481 /* ...... "tr7_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17482 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17483 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17484 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17485 L4_MABX_B.SFunction1_o38 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17486 );
17487 }
17488
17489 if (modeSignal == 68) {
17490 /* ...... "tr8_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17491 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17492 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17493 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17494 L4_MABX_B.SFunction1_o39 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17495 );
17496 }
17497
17498 if (modeSignal == 76) {
17499 /* ...... "tr9_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17500 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17501 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17502 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17503 L4_MABX_B.SFunction1_o40 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17504 );
17505 }
17506
17507 if (modeSignal == 6) {
17508 /* ...... "tr0_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17509 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17510 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17511 L4_MABX_B.SFunction1_o41 = 0.00392156862745098 * ( ((real_T)
17512 CAN_Sgn.UnsignedSgn) );
17513 }
17514
17515 if (modeSignal == 14) {
17516 /* ...... "tr1_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17517 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17518 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17519 L4_MABX_B.SFunction1_o42 = 0.00392156862745098 * ( ((real_T)
17520 CAN_Sgn.UnsignedSgn) );
17521 }
17522
17523 if (modeSignal == 22) {
17524 /* ...... "tr2_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17525 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17526 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17527 L4_MABX_B.SFunction1_o43 = 0.00392156862745098 * ( ((real_T)
17528 CAN_Sgn.UnsignedSgn) );
17529 }
17530
17531 if (modeSignal == 30) {
17532 /* ...... "tr3_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17533 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17534 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17535 L4_MABX_B.SFunction1_o44 = 0.00392156862745098 * ( ((real_T)
17536 CAN_Sgn.UnsignedSgn) );
17537 }
17538
17539 if (modeSignal == 38) {
17540 /* ...... "tr4_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17541 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17542 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17543 L4_MABX_B.SFunction1_o45 = 0.00392156862745098 * ( ((real_T)
17544 CAN_Sgn.UnsignedSgn) );
17545 }
17546
17547 if (modeSignal == 46) {
17548 /* ...... "tr5_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17549 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17550 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17551 L4_MABX_B.SFunction1_o46 = 0.00392156862745098 * ( ((real_T)
17552 CAN_Sgn.UnsignedSgn) );
17553 }
17554
17555 if (modeSignal == 54) {
17556 /* ...... "tr6_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17557 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17558 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17559 L4_MABX_B.SFunction1_o47 = 0.00392156862745098 * ( ((real_T)
17560 CAN_Sgn.UnsignedSgn) );
17561 }
17562
17563 if (modeSignal == 62) {
17564 /* ...... "tr7_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17565 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17566 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17567 L4_MABX_B.SFunction1_o48 = 0.00392156862745098 * ( ((real_T)
17568 CAN_Sgn.UnsignedSgn) );
17569 }
17570
17571 if (modeSignal == 70) {
17572 /* ...... "tr8_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17573 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17574 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17575 L4_MABX_B.SFunction1_o49 = 0.00392156862745098 * ( ((real_T)
17576 CAN_Sgn.UnsignedSgn) );
17577 }
17578
17579 if (modeSignal == 78) {
17580 /* ...... "tr9_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17581 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17582 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17583 L4_MABX_B.SFunction1_o50 = 0.00392156862745098 * ( ((real_T)
17584 CAN_Sgn.UnsignedSgn) );
17585 }
17586
17587 if (modeSignal == 4) {
17588 /* ...... "tr0_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17589 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17590 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17591 CAN_Sgn.SignedSgn &= 0x00003FFF;
17592 if (CAN_Sgn.SignedSgn >> 13) {
17593 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17594 }
17595
17596 L4_MABX_B.SFunction1_o51 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17597 }
17598
17599 if (modeSignal == 5) {
17600 /* ...... "tr0_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17601 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17602 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17603 L4_MABX_B.SFunction1_o52 = -8.8 + ( 0.05 * ( ((real_T)
17604 CAN_Sgn.UnsignedSgn) ) );
17605 }
17606
17607 if (modeSignal == 12) {
17608 /* ...... "tr1_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17609 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17610 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17611 CAN_Sgn.SignedSgn &= 0x00003FFF;
17612 if (CAN_Sgn.SignedSgn >> 13) {
17613 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17614 }
17615
17616 L4_MABX_B.SFunction1_o53 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17617 }
17618
17619 if (modeSignal == 13) {
17620 /* ...... "tr1_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17621 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17622 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17623 L4_MABX_B.SFunction1_o54 = -8.8 + ( 0.05 * ( ((real_T)
17624 CAN_Sgn.UnsignedSgn) ) );
17625 }
17626
17627 if (modeSignal == 20) {
17628 /* ...... "tr2_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17629 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17630 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17631 CAN_Sgn.SignedSgn &= 0x00003FFF;
17632 if (CAN_Sgn.SignedSgn >> 13) {
17633 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17634 }
17635
17636 L4_MABX_B.SFunction1_o55 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17637 }
17638
17639 if (modeSignal == 21) {
17640 /* ...... "tr2_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17641 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17642 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17643 L4_MABX_B.SFunction1_o56 = -8.8 + ( 0.05 * ( ((real_T)
17644 CAN_Sgn.UnsignedSgn) ) );
17645 }
17646
17647 if (modeSignal == 28) {
17648 /* ...... "tr3_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17649 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17650 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17651 CAN_Sgn.SignedSgn &= 0x00003FFF;
17652 if (CAN_Sgn.SignedSgn >> 13) {
17653 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17654 }
17655
17656 L4_MABX_B.SFunction1_o57 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17657 }
17658
17659 if (modeSignal == 29) {
17660 /* ...... "tr3_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17661 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17662 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17663 L4_MABX_B.SFunction1_o58 = -8.8 + ( 0.05 * ( ((real_T)
17664 CAN_Sgn.UnsignedSgn) ) );
17665 }
17666
17667 if (modeSignal == 36) {
17668 /* ...... "tr4_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17669 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17670 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17671 CAN_Sgn.SignedSgn &= 0x00003FFF;
17672 if (CAN_Sgn.SignedSgn >> 13) {
17673 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17674 }
17675
17676 L4_MABX_B.SFunction1_o59 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17677 }
17678
17679 if (modeSignal == 37) {
17680 /* ...... "tr4_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17681 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17682 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17683 L4_MABX_B.SFunction1_o60 = -8.8 + ( 0.05 * ( ((real_T)
17684 CAN_Sgn.UnsignedSgn) ) );
17685 }
17686
17687 if (modeSignal == 44) {
17688 /* ...... "tr5_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17689 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17690 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17691 CAN_Sgn.SignedSgn &= 0x00003FFF;
17692 if (CAN_Sgn.SignedSgn >> 13) {
17693 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17694 }
17695
17696 L4_MABX_B.SFunction1_o61 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17697 }
17698
17699 if (modeSignal == 45) {
17700 /* ...... "tr5_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17701 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17702 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17703 L4_MABX_B.SFunction1_o62 = -8.8 + ( 0.05 * ( ((real_T)
17704 CAN_Sgn.UnsignedSgn) ) );
17705 }
17706
17707 if (modeSignal == 52) {
17708 /* ...... "tr6_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17709 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17710 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17711 CAN_Sgn.SignedSgn &= 0x00003FFF;
17712 if (CAN_Sgn.SignedSgn >> 13) {
17713 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17714 }
17715
17716 L4_MABX_B.SFunction1_o63 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17717 }
17718
17719 if (modeSignal == 53) {
17720 /* ...... "tr6_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17721 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17722 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17723 L4_MABX_B.SFunction1_o64 = -8.8 + ( 0.05 * ( ((real_T)
17724 CAN_Sgn.UnsignedSgn) ) );
17725 }
17726
17727 if (modeSignal == 60) {
17728 /* ...... "tr7_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17729 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17730 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17731 CAN_Sgn.SignedSgn &= 0x00003FFF;
17732 if (CAN_Sgn.SignedSgn >> 13) {
17733 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17734 }
17735
17736 L4_MABX_B.SFunction1_o65 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17737 }
17738
17739 if (modeSignal == 61) {
17740 /* ...... "tr7_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17741 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17742 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17743 L4_MABX_B.SFunction1_o66 = -8.8 + ( 0.05 * ( ((real_T)
17744 CAN_Sgn.UnsignedSgn) ) );
17745 }
17746
17747 if (modeSignal == 68) {
17748 /* ...... "tr8_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17749 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17750 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17751 CAN_Sgn.SignedSgn &= 0x00003FFF;
17752 if (CAN_Sgn.SignedSgn >> 13) {
17753 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17754 }
17755
17756 L4_MABX_B.SFunction1_o67 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17757 }
17758
17759 if (modeSignal == 69) {
17760 /* ...... "tr8_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17761 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17762 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17763 L4_MABX_B.SFunction1_o68 = -8.8 + ( 0.05 * ( ((real_T)
17764 CAN_Sgn.UnsignedSgn) ) );
17765 }
17766
17767 if (modeSignal == 76) {
17768 /* ...... "tr9_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17769 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17770 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17771 CAN_Sgn.SignedSgn &= 0x00003FFF;
17772 if (CAN_Sgn.SignedSgn >> 13) {
17773 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17774 }
17775
17776 L4_MABX_B.SFunction1_o69 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17777 }
17778
17779 if (modeSignal == 77) {
17780 /* ...... "tr9_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17781 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17782 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17783 L4_MABX_B.SFunction1_o70 = -8.8 + ( 0.05 * ( ((real_T)
17784 CAN_Sgn.UnsignedSgn) ) );
17785 }
17786 }
17787 }
17788 } else {
17789 /* set RX status to 0 because no new message has arrived */
17790 L4_MABX_B.SFunction1_o72 = 0.0;
17791 }
17792 }
17793 }
17794
17795 /* End of Constant: '<S423>/Constant' */
17796 /* End of Outputs for SubSystem: '<S498>/Tracks' */
17797
17798 /* DataTypeConversion: '<S498>/Data Type Conversion10' */
17799 L4_MABX_B.Bendix_RADAR_Tracks_RX_delta_ti = L4_MABX_B.SFunction1_o74;
17800
17801 /* DataTypeConversion: '<S498>/Data Type Conversion8' */
17802 L4_MABX_B.Bendix_RADAR_Tracks_RX_status = (L4_MABX_B.SFunction1_o72 != 0.0);
17803
17804 /* DataTypeConversion: '<S498>/Data Type Conversion9' */
17805 L4_MABX_B.Bendix_RADAR_Tracks_RX_time = L4_MABX_B.SFunction1_o73;
17806
17807 /* DataTypeConversion: '<S500>/Data Type Conversion10' */
17808 L4_MABX_B.RX_delta_time_g = L4_MABX_B.SFunction1_o23_d;
17809
17810 /* DataTypeConversion: '<S500>/Data Type Conversion8' */
17811 L4_MABX_B.RX_status_hd = (L4_MABX_B.SFunction1_o21_j != 0.0);
17812
17813 /* DataTypeConversion: '<S500>/Data Type Conversion9' */
17814 L4_MABX_B.RX_time_i = L4_MABX_B.SFunction1_o22_g;
17815
17816 /* DataTypeConversion: '<S502>/Data Type Conversion10' */
17817 L4_MABX_B.RX_delta_time_k2 = L4_MABX_B.SFunction1_o23_m;
17818
17819 /* DataTypeConversion: '<S502>/Data Type Conversion8' */
17820 L4_MABX_B.RX_status_d = (L4_MABX_B.SFunction1_o21_d != 0.0);
17821
17822 /* DataTypeConversion: '<S502>/Data Type Conversion9' */
17823 L4_MABX_B.RX_time_bm = L4_MABX_B.SFunction1_o22_pp;
17824
17825 /* Switch: '<S504>/Switch' */
17826 if (L4_MABX_B.RX_status_e) {
17827 L4_MABX_B.RX_status_n = L4_MABX_B.RX_status_e;
17828 } else {
17829 /* DataTypeConversion: '<S504>/Data Type Conversion1' */
17830 L4_MABX_B.RX_status_hf = (L4_MABX_B.SFunction1_o5_jr != 0.0);
17831 L4_MABX_B.RX_status_n = L4_MABX_B.RX_status_hf;
17832 }
17833
17834 if (L4_MABX_B.RX_status_e) {
17835 /* DataTypeConversion: '<S504>/Data Type Conversion9' */
17836 L4_MABX_B.RX_time_as5 = L4_MABX_B.SFunction1_o6_m0;
17837 L4_MABX_B.RX_time_m = L4_MABX_B.RX_time_as5;
17838
17839 /* DataTypeConversion: '<S504>/Data Type Conversion10' */
17840 L4_MABX_B.RX_delta_time_bp = L4_MABX_B.SFunction1_o7_dv;
17841 L4_MABX_B.RX_delta_time_fx = L4_MABX_B.RX_delta_time_bp;
17842 } else {
17843 /* DataTypeConversion: '<S504>/Data Type Conversion2' */
17844 L4_MABX_B.RX_time_c5 = L4_MABX_B.SFunction1_o6_h2;
17845 L4_MABX_B.RX_time_m = L4_MABX_B.RX_time_c5;
17846
17847 /* DataTypeConversion: '<S504>/Data Type Conversion3' */
17848 L4_MABX_B.RX_delta_time_jj = L4_MABX_B.SFunction1_o7_ka;
17849 L4_MABX_B.RX_delta_time_fx = L4_MABX_B.RX_delta_time_jj;
17850 }
17851
17852 /* DataTypeConversion: '<S507>/Data Type Conversion10' */
17853 L4_MABX_B.RX_delta_time_o = L4_MABX_B.SFunction1_o4_aq;
17854
17855 /* DataTypeConversion: '<S507>/Data Type Conversion8' */
17856 L4_MABX_B.RX_status_i = (L4_MABX_B.SFunction1_o2_lt != 0.0);
17857
17858 /* DataTypeConversion: '<S507>/Data Type Conversion9' */
17859 L4_MABX_B.RX_time_d = L4_MABX_B.SFunction1_o3_a1;
17860
17861 /* Outputs for Enabled SubSystem: '<S509>/EBC1_0B' incorporates:
17862 * EnablePort: '<S510>/Enable'
17863 */
17864 /* Constant: '<S428>/Constant1' */
17865 if (L4_MABX_P.Constant1_Value_nx) {
17866 /* S-Function (rti_commonblock): '<S510>/S-Function1' */
17867 /* This comment workarounds a code generation problem */
17868
17869 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382091 */
17870 {
17871 UInt32 *CAN_Msg;
17872 static dsfloat time_old = 0.0;
17873
17874 /* Read status and timestamp info (previous message) */
17875 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp !=
17876 time_old) {
17877 /* ... save timestamp info for the calculation of the RX status
17878 during the consecutive sample hit*/
17879 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].
17880 timestamp;
17881
17882 /* ... set the processed flag to one */
17883 L4_MABX_B.SFunction1_o23_l = 1.0;
17884 L4_MABX_B.SFunction1_o24_l = (real_T)
17885 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp;
17886 L4_MABX_B.SFunction1_o25_fk = (real_T)
17887 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].deltatime;
17888 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].data;
17889
17890 /* Decode CAN message */
17891 {
17892 {
17893 rtican_Signal_t CAN_Sgn;
17894
17895 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
17896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17897 CAN_Sgn.UnsignedSgn &= 0x00000003;
17898 L4_MABX_B.SFunction1_o1_au = ((real_T) CAN_Sgn.UnsignedSgn);
17899
17900 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
17901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17902 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17903 CAN_Sgn.UnsignedSgn &= 0x00000003;
17904 L4_MABX_B.SFunction1_o2_fe = ((real_T) CAN_Sgn.UnsignedSgn);
17905
17906 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
17907 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17908 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17909 CAN_Sgn.UnsignedSgn &= 0x00000003;
17910 L4_MABX_B.SFunction1_o3_nf = ((real_T) CAN_Sgn.UnsignedSgn);
17911
17912 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
17913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17914 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17915 CAN_Sgn.UnsignedSgn &= 0x00000003;
17916 L4_MABX_B.SFunction1_o4_bs = ((real_T) CAN_Sgn.UnsignedSgn);
17917
17918 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
17919 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17920 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17921 L4_MABX_B.SFunction1_o5_ck = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17922
17923 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
17924 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17925 CAN_Sgn.UnsignedSgn &= 0x00000003;
17926 L4_MABX_B.SFunction1_o6_h1 = ((real_T) CAN_Sgn.UnsignedSgn);
17927
17928 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
17929 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17930 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17931 CAN_Sgn.UnsignedSgn &= 0x00000003;
17932 L4_MABX_B.SFunction1_o7_ja = ((real_T) CAN_Sgn.UnsignedSgn);
17933
17934 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
17935 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17936 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17937 CAN_Sgn.UnsignedSgn &= 0x00000003;
17938 L4_MABX_B.SFunction1_o8_f2 = ((real_T) CAN_Sgn.UnsignedSgn);
17939
17940 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
17941 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17942 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17943 CAN_Sgn.UnsignedSgn &= 0x00000003;
17944 L4_MABX_B.SFunction1_o9_kf = ((real_T) CAN_Sgn.UnsignedSgn);
17945
17946 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
17947 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17948 CAN_Sgn.UnsignedSgn &= 0x00000003;
17949 L4_MABX_B.SFunction1_o10_du = ((real_T) CAN_Sgn.UnsignedSgn);
17950
17951 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
17952 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17953 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17954 CAN_Sgn.UnsignedSgn &= 0x00000003;
17955 L4_MABX_B.SFunction1_o11_nl = ((real_T) CAN_Sgn.UnsignedSgn);
17956
17957 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
17958 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17959 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17960 CAN_Sgn.UnsignedSgn &= 0x00000003;
17961 L4_MABX_B.SFunction1_o12_o = ((real_T) CAN_Sgn.UnsignedSgn);
17962
17963 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
17964 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17965 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17966 CAN_Sgn.UnsignedSgn &= 0x00000003;
17967 L4_MABX_B.SFunction1_o13_l = ((real_T) CAN_Sgn.UnsignedSgn);
17968
17969 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
17970 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17971 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17972 L4_MABX_B.SFunction1_o14_a4 = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17973 );
17974
17975 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
17976 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17977 CAN_Sgn.UnsignedSgn &= 0x00000003;
17978 L4_MABX_B.SFunction1_o15_k = ((real_T) CAN_Sgn.UnsignedSgn);
17979
17980 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
17981 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17982 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17983 CAN_Sgn.UnsignedSgn &= 0x00000003;
17984 L4_MABX_B.SFunction1_o16_d = ((real_T) CAN_Sgn.UnsignedSgn);
17985
17986 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
17987 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17988 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17989 CAN_Sgn.UnsignedSgn &= 0x00000003;
17990 L4_MABX_B.SFunction1_o17_a = ((real_T) CAN_Sgn.UnsignedSgn);
17991
17992 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
17993 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17994 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17995 CAN_Sgn.UnsignedSgn &= 0x00000003;
17996 L4_MABX_B.SFunction1_o18_a = ((real_T) CAN_Sgn.UnsignedSgn);
17997
17998 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
17999 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18000 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18001 L4_MABX_B.SFunction1_o19_k = ((real_T) CAN_Sgn.UnsignedSgn);
18002
18003 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
18004 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18005 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18006 CAN_Sgn.UnsignedSgn &= 0x00000003;
18007 L4_MABX_B.SFunction1_o20_e = ((real_T) CAN_Sgn.UnsignedSgn);
18008
18009 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
18010 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18011 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18012 CAN_Sgn.UnsignedSgn &= 0x00000003;
18013 L4_MABX_B.SFunction1_o21_n = ((real_T) CAN_Sgn.UnsignedSgn);
18014
18015 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
18016 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18017 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18018 CAN_Sgn.UnsignedSgn &= 0x00000003;
18019 L4_MABX_B.SFunction1_o22_p = ((real_T) CAN_Sgn.UnsignedSgn);
18020 }
18021 }
18022 } else {
18023 /* set RX status to 0 because no new message has arrived */
18024 L4_MABX_B.SFunction1_o23_l = 0.0;
18025 }
18026 }
18027 }
18028
18029 /* End of Constant: '<S428>/Constant1' */
18030 /* End of Outputs for SubSystem: '<S509>/EBC1_0B' */
18031
18032 /* DataTypeConversion: '<S509>/Data Type Conversion10' */
18033 L4_MABX_B.RX_delta_time_ng = L4_MABX_B.SFunction1_o25_fk;
18034
18035 /* DataTypeConversion: '<S509>/Data Type Conversion8' */
18036 L4_MABX_B.RX_status_a = (L4_MABX_B.SFunction1_o23_l != 0.0);
18037
18038 /* DataTypeConversion: '<S509>/Data Type Conversion9' */
18039 L4_MABX_B.RX_time_bmo = L4_MABX_B.SFunction1_o24_l;
18040
18041 /* DataTypeConversion: '<S511>/Data Type Conversion10' */
18042 L4_MABX_B.RX_delta_time_h = L4_MABX_B.SFunction1_o25_f;
18043
18044 /* DataTypeConversion: '<S511>/Data Type Conversion8' */
18045 L4_MABX_B.RX_status_lq = (L4_MABX_B.SFunction1_o23_n != 0.0);
18046
18047 /* DataTypeConversion: '<S511>/Data Type Conversion9' */
18048 L4_MABX_B.RX_time_iw = L4_MABX_B.SFunction1_o24_p;
18049
18050 /* DataTypeConversion: '<S513>/Data Type Conversion10' */
18051 L4_MABX_B.RX_delta_time_j = L4_MABX_B.SFunction1_o10_k;
18052
18053 /* DataTypeConversion: '<S513>/Data Type Conversion8' */
18054 L4_MABX_B.RX_status_k4 = (L4_MABX_B.SFunction1_o8_nz != 0.0);
18055
18056 /* DataTypeConversion: '<S513>/Data Type Conversion9' */
18057 L4_MABX_B.RX_time_k5 = L4_MABX_B.SFunction1_o9_p2;
18058
18059 /* DataTypeConversion: '<S560>/Data Type Conversion10' */
18060 L4_MABX_B.RX_delta_time_hq = L4_MABX_B.SFunction1_o11_h;
18061
18062 /* DataTypeConversion: '<S560>/Data Type Conversion8' */
18063 L4_MABX_B.RX_status_dd = (L4_MABX_B.SFunction1_o9_kn != 0.0);
18064
18065 /* DataTypeConversion: '<S560>/Data Type Conversion9' */
18066 L4_MABX_B.RX_time_if = L4_MABX_B.SFunction1_o10_m4;
18067
18068 /* Outputs for Enabled SubSystem: '<S562>/EEC2_001' incorporates:
18069 * EnablePort: '<S563>/Enable'
18070 */
18071 /* Constant: '<S433>/Enable_RX_EEC2_00' */
18072 if (L4_MABX_P.Enable_RX_EEC2_00_Value) {
18073 /* S-Function (rti_commonblock): '<S563>/S-Function1' */
18074 /* This comment workarounds a code generation problem */
18075
18076 /* dSPACE RTICAN RX Message Block: "EEC2_00" Id:217056000 */
18077 {
18078 UInt32 *CAN_Msg;
18079 static dsfloat time_old = 0.0;
18080
18081 /* Read status and timestamp info (previous message) */
18082 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp !=
18083 time_old) {
18084 /* ... save timestamp info for the calculation of the RX status
18085 during the consecutive sample hit*/
18086 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].
18087 timestamp;
18088
18089 /* ... set the processed flag to one */
18090 L4_MABX_B.SFunction1_o15_c = 1.0;
18091 L4_MABX_B.SFunction1_o16_e = (real_T)
18092 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp;
18093 L4_MABX_B.SFunction1_o17_b = (real_T)
18094 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].deltatime;
18095 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].data;
18096
18097 /* Decode CAN message */
18098 {
18099 {
18100 rtican_Signal_t CAN_Sgn;
18101
18102 /* ...... "SPN558_AccelPed1LowIdlSwitch" (0|2, standard signal, unsigned int, little endian) */
18103 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18104 CAN_Sgn.UnsignedSgn &= 0x00000003;
18105 L4_MABX_B.SFunction1_o1_j = ((real_T) CAN_Sgn.UnsignedSgn);
18106
18107 /* ...... "SPN559_AccelPedKickdownSw" (2|2, standard signal, unsigned int, little endian) */
18108 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18109 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18110 CAN_Sgn.UnsignedSgn &= 0x00000003;
18111 L4_MABX_B.SFunction1_o2_ft = ((real_T) CAN_Sgn.UnsignedSgn);
18112
18113 /* ...... "SPN1437_RoadSpeedLimitStatus" (4|2, standard signal, unsigned int, little endian) */
18114 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18115 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18116 CAN_Sgn.UnsignedSgn &= 0x00000003;
18117 L4_MABX_B.SFunction1_o3_jp = ((real_T) CAN_Sgn.UnsignedSgn);
18118
18119 /* ...... "SPN2970_AccelPed2LowIdlSwitch" (6|2, standard signal, unsigned int, little endian) */
18120 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18121 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18122 CAN_Sgn.UnsignedSgn &= 0x00000003;
18123 L4_MABX_B.SFunction1_o4_bi = ((real_T) CAN_Sgn.UnsignedSgn);
18124
18125 /* ...... "SPN91_AccelPedPos1" (8|8, standard signal, unsigned int, little endian) */
18126 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
18127 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18128 L4_MABX_B.SFunction1_o5_c4 = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18129
18130 /* ...... "SPN92_EngPercLoadAtCurrSpd" (16|8, standard signal, unsigned int, little endian) */
18131 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18132 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18133 L4_MABX_B.SFunction1_o6_pm = ((real_T) CAN_Sgn.UnsignedSgn);
18134
18135 /* ...... "SPN974_RemAccelPedalPosition" (24|8, standard signal, unsigned int, little endian) */
18136 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18137 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18138 L4_MABX_B.SFunction1_o7_oq = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18139
18140 /* ...... "SPN29_AccelPedPos2" (32|8, standard signal, unsigned int, little endian) */
18141 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18142 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18143 L4_MABX_B.SFunction1_o8_lf = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18144
18145 /* ...... "SPN2979_VehAccelRateLimStatus" (40|2, standard signal, unsigned int, little endian) */
18146 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18147 CAN_Sgn.UnsignedSgn &= 0x00000003;
18148 L4_MABX_B.SFunction1_o9_l = ((real_T) CAN_Sgn.UnsignedSgn);
18149
18150 /* ...... "SPN5021_MomEngMaxPwrEnFdbk" (42|2, standard signal, unsigned int, little endian) */
18151 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18152 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18153 CAN_Sgn.UnsignedSgn &= 0x00000003;
18154 L4_MABX_B.SFunction1_o10_fp = ((real_T) CAN_Sgn.UnsignedSgn);
18155
18156 /* ...... "SPN5399_DPFThermMgmtActive" (44|2, standard signal, unsigned int, little endian) */
18157 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18158 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18159 CAN_Sgn.UnsignedSgn &= 0x00000003;
18160 L4_MABX_B.SFunction1_o11_nm = ((real_T) CAN_Sgn.UnsignedSgn);
18161
18162 /* ...... "SPN5400_SCRThermMgmtActive" (46|2, standard signal, unsigned int, little endian) */
18163 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
18164 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
18165 CAN_Sgn.UnsignedSgn &= 0x00000003;
18166 L4_MABX_B.SFunction1_o12_n = ((real_T) CAN_Sgn.UnsignedSgn);
18167
18168 /* ...... "SPN3357_ActMaxAvailEngPercTrq" (48|8, standard signal, unsigned int, little endian) */
18169 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18170 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18171 L4_MABX_B.SFunction1_o13_j = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
18172
18173 /* ...... "SPN5398_EstPumpingPercentTorque" (56|8, standard signal, unsigned int, little endian) */
18174 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
18175 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18176 L4_MABX_B.SFunction1_o14_p = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
18177 );
18178 }
18179 }
18180 } else {
18181 /* set RX status to 0 because no new message has arrived */
18182 L4_MABX_B.SFunction1_o15_c = 0.0;
18183 }
18184 }
18185 }
18186
18187 /* End of Constant: '<S433>/Enable_RX_EEC2_00' */
18188 /* End of Outputs for SubSystem: '<S562>/EEC2_001' */
18189
18190 /* DataTypeConversion: '<S562>/Data Type Conversion10' */
18191 L4_MABX_B.RX_delta_time_gn = L4_MABX_B.SFunction1_o17_b;
18192
18193 /* DataTypeConversion: '<S562>/Data Type Conversion8' */
18194 L4_MABX_B.RX_status_p = (L4_MABX_B.SFunction1_o15_c != 0.0);
18195
18196 /* DataTypeConversion: '<S562>/Data Type Conversion9' */
18197 L4_MABX_B.RX_time_g4 = L4_MABX_B.SFunction1_o16_e;
18198
18199 /* DataTypeConversion: '<S564>/Data Type Conversion10' */
18200 L4_MABX_B.RX_delta_time_cb = L4_MABX_B.SFunction1_o5_dw;
18201
18202 /* DataTypeConversion: '<S564>/Data Type Conversion8' */
18203 L4_MABX_B.RX_status_ex = (L4_MABX_B.SFunction1_o3_mg != 0.0);
18204
18205 /* DataTypeConversion: '<S564>/Data Type Conversion9' */
18206 L4_MABX_B.RX_time_ha = L4_MABX_B.SFunction1_o4_l3;
18207
18208 /* DataTypeConversion: '<S566>/Data Type Conversion10' */
18209 L4_MABX_B.RX_delta_time_hk = L4_MABX_B.SFunction1_o6_io;
18210
18211 /* DataTypeConversion: '<S566>/Data Type Conversion8' */
18212 L4_MABX_B.RX_status_cf = (L4_MABX_B.SFunction1_o4_o4 != 0.0);
18213
18214 /* DataTypeConversion: '<S566>/Data Type Conversion9' */
18215 L4_MABX_B.RX_time_gj = L4_MABX_B.SFunction1_o5_e;
18216
18217 /* Switch: '<S568>/Switch' */
18218 if (L4_MABX_B.RX_status_c) {
18219 L4_MABX_B.SID_f = L4_MABX_B.SFunction1_o1_ey;
18220 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_nr;
18221 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_ai;
18222 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_ba;
18223 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_gn;
18224 L4_MABX_B.RX_status_ia = L4_MABX_B.RX_status_c;
18225 } else {
18226 L4_MABX_B.SID_f = L4_MABX_B.SFunction1_o1_d4;
18227 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_ca;
18228 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_dt;
18229 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_pg;
18230 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_e;
18231
18232 /* DataTypeConversion: '<S568>/Data Type Conversion3' */
18233 L4_MABX_B.RX_status_i0 = (L4_MABX_B.SFunction1_o7_hx != 0.0);
18234 L4_MABX_B.RX_status_ia = L4_MABX_B.RX_status_i0;
18235 }
18236
18237 if (L4_MABX_B.RX_status_c) {
18238 /* DataTypeConversion: '<S568>/Data Type Conversion9' */
18239 L4_MABX_B.RX_time_hl = L4_MABX_B.SFunction1_o8_l;
18240 L4_MABX_B.RX_time_is = L4_MABX_B.RX_time_hl;
18241
18242 /* DataTypeConversion: '<S568>/Data Type Conversion10' */
18243 L4_MABX_B.RX_delta_time_byl = L4_MABX_B.SFunction1_o9_bi;
18244 L4_MABX_B.RX_delta_time_cu = L4_MABX_B.RX_delta_time_byl;
18245 } else {
18246 /* DataTypeConversion: '<S568>/Data Type Conversion2' */
18247 L4_MABX_B.RX_time_n5 = L4_MABX_B.SFunction1_o8_br;
18248 L4_MABX_B.RX_time_is = L4_MABX_B.RX_time_n5;
18249
18250 /* DataTypeConversion: '<S568>/Data Type Conversion1' */
18251 L4_MABX_B.RX_delta_time_cut = L4_MABX_B.SFunction1_o9_ny;
18252 L4_MABX_B.RX_delta_time_cu = L4_MABX_B.RX_delta_time_cut;
18253 }
18254
18255 /* DataTypeConversion: '<S571>/Data Type Conversion10' */
18256 L4_MABX_B.RX_delta_time_gs = L4_MABX_B.SFunction1_o7_dc;
18257
18258 /* DataTypeConversion: '<S571>/Data Type Conversion8' */
18259 L4_MABX_B.RX_status_k2 = (L4_MABX_B.SFunction1_o5_i1 != 0.0);
18260
18261 /* DataTypeConversion: '<S571>/Data Type Conversion9' */
18262 L4_MABX_B.RX_time_o = L4_MABX_B.SFunction1_o6_a;
18263
18264 /* Switch: '<S438>/Switch' */
18265 if (L4_MABX_B.Operator_ox) {
18266 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_pn;
18267
18268 /* DataTypeConversion: '<S573>/Data Type Conversion8' */
18269 L4_MABX_B.RX_status_bs = (L4_MABX_B.SFunction1_o3_c15 != 0.0);
18270 L4_MABX_B.RX_status_fv = L4_MABX_B.RX_status_bs;
18271
18272 /* DataTypeConversion: '<S573>/Data Type Conversion9' */
18273 L4_MABX_B.RX_time_mm = L4_MABX_B.SFunction1_o4_nq;
18274 L4_MABX_B.RX_time_bb = L4_MABX_B.RX_time_mm;
18275
18276 /* DataTypeConversion: '<S573>/Data Type Conversion10' */
18277 L4_MABX_B.RX_delta_time_n4 = L4_MABX_B.SFunction1_o5_b;
18278 L4_MABX_B.RX_delta_time_h3 = L4_MABX_B.RX_delta_time_n4;
18279 } else {
18280 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_al;
18281
18282 /* DataTypeConversion: '<S574>/Data Type Conversion8' */
18283 L4_MABX_B.RX_status_lr = (L4_MABX_B.SFunction1_o3_og != 0.0);
18284 L4_MABX_B.RX_status_fv = L4_MABX_B.RX_status_lr;
18285
18286 /* DataTypeConversion: '<S574>/Data Type Conversion9' */
18287 L4_MABX_B.RX_time_hp = L4_MABX_B.SFunction1_o4_cp;
18288 L4_MABX_B.RX_time_bb = L4_MABX_B.RX_time_hp;
18289
18290 /* DataTypeConversion: '<S574>/Data Type Conversion10' */
18291 L4_MABX_B.RX_delta_time_ou = L4_MABX_B.SFunction1_o5_g1;
18292 L4_MABX_B.RX_delta_time_h3 = L4_MABX_B.RX_delta_time_ou;
18293 }
18294
18295 /* RelationalOperator: '<S610>/Operator' incorporates:
18296 * Constant: '<S441>/Constant'
18297 * Constant: '<S606>/Constant'
18298 */
18299 L4_MABX_B.Operator_j5 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18300 L4_MABX_P.Constant_Value_cw);
18301
18302 /* Outputs for Enabled SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' incorporates:
18303 * EnablePort: '<S607>/Enable'
18304 */
18305 if (L4_MABX_B.Operator_j5) {
18306 /* S-Function (rti_commonblock): '<S607>/S-Function1' */
18307 /* This comment workarounds a code generation problem */
18308
18309 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18310 {
18311 UInt32 *CAN_Msg;
18312 static dsfloat time_old = 0.0;
18313
18314 /* Read status and timestamp info (previous message) */
18315 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18316 time_old) {
18317 /* ... save timestamp info for the calculation of the RX status
18318 during the consecutive sample hit*/
18319 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].
18320 timestamp;
18321
18322 /* ... set the processed flag to one */
18323 L4_MABX_B.SFunction1_o3_le = 1.0;
18324 L4_MABX_B.SFunction1_o4_i = (real_T)
18325 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18326 L4_MABX_B.SFunction1_o5_ir = (real_T)
18327 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18328 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].data;
18329
18330 /* Decode CAN message */
18331 {
18332 {
18333 rtican_Signal_t CAN_Sgn;
18334
18335 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18336 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18337 CAN_Sgn.UnsignedSgn &= 0x00000003;
18338 L4_MABX_B.SFunction1_o1_i3 = ((real_T) CAN_Sgn.UnsignedSgn);
18339
18340 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18341 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18342 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18343 CAN_Sgn.UnsignedSgn &= 0x00000003;
18344 L4_MABX_B.SFunction1_o2_g = ((real_T) CAN_Sgn.UnsignedSgn);
18345 }
18346 }
18347 } else {
18348 /* set RX status to 0 because no new message has arrived */
18349 L4_MABX_B.SFunction1_o3_le = 0.0;
18350 }
18351 }
18352 }
18353
18354 /* End of Outputs for SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' */
18355
18356 /* RelationalOperator: '<S611>/Operator' incorporates:
18357 * Constant: '<S441>/Constant'
18358 * Constant: '<S606>/Constant1'
18359 */
18360 L4_MABX_B.Operator_mg = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18361 L4_MABX_P.Constant1_Value_h);
18362
18363 /* Outputs for Enabled SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' incorporates:
18364 * EnablePort: '<S608>/Enable'
18365 */
18366 if (L4_MABX_B.Operator_mg) {
18367 /* S-Function (rti_commonblock): '<S608>/S-Function1' */
18368 /* This comment workarounds a code generation problem */
18369
18370 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18371 {
18372 UInt32 *CAN_Msg;
18373 static dsfloat time_old = 0.0;
18374
18375 /* Read status and timestamp info (previous message) */
18376 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp !=
18377 time_old) {
18378 /* ... save timestamp info for the calculation of the RX status
18379 during the consecutive sample hit*/
18380 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].
18381 timestamp;
18382
18383 /* ... set the processed flag to one */
18384 L4_MABX_B.SFunction1_o3_cs = 1.0;
18385 L4_MABX_B.SFunction1_o4_e0 = (real_T)
18386 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp;
18387 L4_MABX_B.SFunction1_o5_c5 = (real_T)
18388 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].deltatime;
18389 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].data;
18390
18391 /* Decode CAN message */
18392 {
18393 {
18394 rtican_Signal_t CAN_Sgn;
18395
18396 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18397 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18398 CAN_Sgn.UnsignedSgn &= 0x00000003;
18399 L4_MABX_B.SFunction1_o1_h5 = ((real_T) CAN_Sgn.UnsignedSgn);
18400
18401 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18402 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18403 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18404 CAN_Sgn.UnsignedSgn &= 0x00000003;
18405 L4_MABX_B.SFunction1_o2_lh = ((real_T) CAN_Sgn.UnsignedSgn);
18406 }
18407 }
18408 } else {
18409 /* set RX status to 0 because no new message has arrived */
18410 L4_MABX_B.SFunction1_o3_cs = 0.0;
18411 }
18412 }
18413 }
18414
18415 /* End of Outputs for SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' */
18416
18417 /* RelationalOperator: '<S612>/Operator' incorporates:
18418 * Constant: '<S441>/Constant'
18419 * Constant: '<S606>/Constant2'
18420 */
18421 L4_MABX_B.Operator_ms4 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18422 L4_MABX_P.Constant2_Value_pc);
18423
18424 /* Outputs for Enabled SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' incorporates:
18425 * EnablePort: '<S609>/Enable'
18426 */
18427 if (L4_MABX_B.Operator_ms4) {
18428 /* S-Function (rti_commonblock): '<S609>/S-Function1' */
18429 /* This comment workarounds a code generation problem */
18430
18431 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18432 {
18433 UInt32 *CAN_Msg;
18434 static dsfloat time_old = 0.0;
18435
18436 /* Read status and timestamp info (previous message) */
18437 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18438 time_old) {
18439 /* ... save timestamp info for the calculation of the RX status
18440 during the consecutive sample hit*/
18441 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].
18442 timestamp;
18443
18444 /* ... set the processed flag to one */
18445 L4_MABX_B.SFunction1_o3_ii = 1.0;
18446 L4_MABX_B.SFunction1_o4_jn = (real_T)
18447 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18448 L4_MABX_B.SFunction1_o5_o = (real_T)
18449 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18450 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].data;
18451
18452 /* Decode CAN message */
18453 {
18454 {
18455 rtican_Signal_t CAN_Sgn;
18456
18457 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18458 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18459 CAN_Sgn.UnsignedSgn &= 0x00000003;
18460 L4_MABX_B.SFunction1_o1_mp = ((real_T) CAN_Sgn.UnsignedSgn);
18461
18462 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18463 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18464 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18465 CAN_Sgn.UnsignedSgn &= 0x00000003;
18466 L4_MABX_B.SFunction1_o2_ng = ((real_T) CAN_Sgn.UnsignedSgn);
18467 }
18468 }
18469 } else {
18470 /* set RX status to 0 because no new message has arrived */
18471 L4_MABX_B.SFunction1_o3_ii = 0.0;
18472 }
18473 }
18474 }
18475
18476 /* End of Outputs for SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' */
18477
18478 /* DataTypeConversion: '<S605>/Data Type Conversion' */
18479 PositionFinalLimited = L4_MABX_B.SFunction1_o1_mp;
18480 if (PositionFinalLimited < 256.0) {
18481 if (PositionFinalLimited >= 0.0) {
18482 starting_index = (uint8_T)PositionFinalLimited;
18483 } else {
18484 starting_index = 0U;
18485 }
18486 } else {
18487 starting_index = MAX_uint8_T;
18488 }
18489
18490 L4_MABX_B.DataTypeConversion_cct = starting_index;
18491
18492 /* End of DataTypeConversion: '<S605>/Data Type Conversion' */
18493
18494 /* DataTypeConversion: '<S605>/Data Type Conversion2' */
18495 L4_MABX_B.EPBPCMInhibitStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18496 L4_MABX_B.DataTypeConversion_cct;
18497
18498 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18499 * Constant: '<S441>/Constant'
18500 */
18501 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18502 case ENUM_CAN_RX_T_RX_CAN_1:
18503 /* DataTypeConversion: '<S603>/Data Type Conversion' */
18504 PositionFinalLimited = L4_MABX_B.SFunction1_o1_i3;
18505 if (PositionFinalLimited < 256.0) {
18506 if (PositionFinalLimited >= 0.0) {
18507 starting_index = (uint8_T)PositionFinalLimited;
18508 } else {
18509 starting_index = 0U;
18510 }
18511 } else {
18512 starting_index = MAX_uint8_T;
18513 }
18514
18515 L4_MABX_B.DataTypeConversion_is = starting_index;
18516
18517 /* End of DataTypeConversion: '<S603>/Data Type Conversion' */
18518
18519 /* DataTypeConversion: '<S603>/Data Type Conversion2' */
18520 L4_MABX_B.EPBPCMInhibitStatusFeedback_l = (ENUM_XPR_FEEDBACK_T)
18521 L4_MABX_B.DataTypeConversion_is;
18522 L4_MABX_B.EPBPCMInhibitStatusFeedback_j =
18523 L4_MABX_B.EPBPCMInhibitStatusFeedback_l;
18524 break;
18525
18526 case ENUM_CAN_RX_T_RX_CAN_2:
18527 /* DataTypeConversion: '<S604>/Data Type Conversion' */
18528 PositionFinalLimited = L4_MABX_B.SFunction1_o1_h5;
18529 if (PositionFinalLimited < 256.0) {
18530 if (PositionFinalLimited >= 0.0) {
18531 starting_index = (uint8_T)PositionFinalLimited;
18532 } else {
18533 starting_index = 0U;
18534 }
18535 } else {
18536 starting_index = MAX_uint8_T;
18537 }
18538
18539 L4_MABX_B.DataTypeConversion_fq = starting_index;
18540
18541 /* End of DataTypeConversion: '<S604>/Data Type Conversion' */
18542
18543 /* DataTypeConversion: '<S604>/Data Type Conversion2' */
18544 L4_MABX_B.EPBPCMInhibitStatusFeedback_i = (ENUM_XPR_FEEDBACK_T)
18545 L4_MABX_B.DataTypeConversion_fq;
18546 L4_MABX_B.EPBPCMInhibitStatusFeedback_j =
18547 L4_MABX_B.EPBPCMInhibitStatusFeedback_i;
18548 break;
18549
18550 case ENUM_CAN_RX_T_RX_CAN_3:
18551 L4_MABX_B.EPBPCMInhibitStatusFeedback_j =
18552 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18553 break;
18554
18555 case ENUM_CAN_RX_T_RX_CAN_4:
18556 L4_MABX_B.EPBPCMInhibitStatusFeedback_j =
18557 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18558 break;
18559
18560 case ENUM_CAN_RX_T_RX_CAN_5:
18561 L4_MABX_B.EPBPCMInhibitStatusFeedback_j =
18562 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18563 break;
18564
18565 case ENUM_CAN_RX_T_RX_CAN_6:
18566 L4_MABX_B.EPBPCMInhibitStatusFeedback_j =
18567 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18568 break;
18569
18570 default:
18571 L4_MABX_B.EPBPCMInhibitStatusFeedback_j =
18572 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18573 break;
18574 }
18575
18576 /* DataTypeConversion: '<S605>/Data Type Conversion1' */
18577 PositionFinalLimited = L4_MABX_B.SFunction1_o2_ng;
18578 if (PositionFinalLimited < 256.0) {
18579 if (PositionFinalLimited >= 0.0) {
18580 starting_index = (uint8_T)PositionFinalLimited;
18581 } else {
18582 starting_index = 0U;
18583 }
18584 } else {
18585 starting_index = MAX_uint8_T;
18586 }
18587
18588 L4_MABX_B.DataTypeConversion1_nf = starting_index;
18589
18590 /* End of DataTypeConversion: '<S605>/Data Type Conversion1' */
18591
18592 /* DataTypeConversion: '<S605>/Data Type Conversion3' */
18593 L4_MABX_B.EPBPCMManualStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18594 L4_MABX_B.DataTypeConversion1_nf;
18595
18596 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18597 * Constant: '<S441>/Constant'
18598 */
18599 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18600 case ENUM_CAN_RX_T_RX_CAN_1:
18601 /* DataTypeConversion: '<S603>/Data Type Conversion1' */
18602 PositionFinalLimited = L4_MABX_B.SFunction1_o2_g;
18603 if (PositionFinalLimited < 256.0) {
18604 if (PositionFinalLimited >= 0.0) {
18605 starting_index = (uint8_T)PositionFinalLimited;
18606 } else {
18607 starting_index = 0U;
18608 }
18609 } else {
18610 starting_index = MAX_uint8_T;
18611 }
18612
18613 L4_MABX_B.DataTypeConversion1_h2 = starting_index;
18614
18615 /* End of DataTypeConversion: '<S603>/Data Type Conversion1' */
18616
18617 /* DataTypeConversion: '<S603>/Data Type Conversion3' */
18618 L4_MABX_B.EPBPCMManualStatusFeedback_h = (ENUM_XPR_FEEDBACK_T)
18619 L4_MABX_B.DataTypeConversion1_h2;
18620 L4_MABX_B.EPBPCMManualStatusFeedback_b =
18621 L4_MABX_B.EPBPCMManualStatusFeedback_h;
18622 break;
18623
18624 case ENUM_CAN_RX_T_RX_CAN_2:
18625 /* DataTypeConversion: '<S604>/Data Type Conversion1' */
18626 PositionFinalLimited = L4_MABX_B.SFunction1_o2_lh;
18627 if (PositionFinalLimited < 256.0) {
18628 if (PositionFinalLimited >= 0.0) {
18629 starting_index = (uint8_T)PositionFinalLimited;
18630 } else {
18631 starting_index = 0U;
18632 }
18633 } else {
18634 starting_index = MAX_uint8_T;
18635 }
18636
18637 L4_MABX_B.DataTypeConversion1_mw = starting_index;
18638
18639 /* End of DataTypeConversion: '<S604>/Data Type Conversion1' */
18640
18641 /* DataTypeConversion: '<S604>/Data Type Conversion3' */
18642 L4_MABX_B.EPBPCMManualStatusFeedback_p = (ENUM_XPR_FEEDBACK_T)
18643 L4_MABX_B.DataTypeConversion1_mw;
18644 L4_MABX_B.EPBPCMManualStatusFeedback_b =
18645 L4_MABX_B.EPBPCMManualStatusFeedback_p;
18646 break;
18647
18648 case ENUM_CAN_RX_T_RX_CAN_3:
18649 L4_MABX_B.EPBPCMManualStatusFeedback_b =
18650 L4_MABX_B.EPBPCMManualStatusFeedback;
18651 break;
18652
18653 case ENUM_CAN_RX_T_RX_CAN_4:
18654 L4_MABX_B.EPBPCMManualStatusFeedback_b =
18655 L4_MABX_B.EPBPCMManualStatusFeedback;
18656 break;
18657
18658 case ENUM_CAN_RX_T_RX_CAN_5:
18659 L4_MABX_B.EPBPCMManualStatusFeedback_b =
18660 L4_MABX_B.EPBPCMManualStatusFeedback;
18661 break;
18662
18663 case ENUM_CAN_RX_T_RX_CAN_6:
18664 L4_MABX_B.EPBPCMManualStatusFeedback_b =
18665 L4_MABX_B.EPBPCMManualStatusFeedback;
18666 break;
18667
18668 default:
18669 L4_MABX_B.EPBPCMManualStatusFeedback_b =
18670 L4_MABX_B.EPBPCMManualStatusFeedback;
18671 break;
18672 }
18673
18674 /* DataTypeConversion: '<S605>/Data Type Conversion8' */
18675 L4_MABX_B.RX_status_aq = (L4_MABX_B.SFunction1_o3_ii != 0.0);
18676
18677 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18678 * Constant: '<S441>/Constant'
18679 */
18680 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18681 case ENUM_CAN_RX_T_RX_CAN_1:
18682 /* DataTypeConversion: '<S603>/Data Type Conversion8' */
18683 L4_MABX_B.RX_status_c2 = (L4_MABX_B.SFunction1_o3_le != 0.0);
18684 L4_MABX_B.RX_status_c1 = L4_MABX_B.RX_status_c2;
18685 break;
18686
18687 case ENUM_CAN_RX_T_RX_CAN_2:
18688 /* DataTypeConversion: '<S604>/Data Type Conversion8' */
18689 L4_MABX_B.RX_status_br = (L4_MABX_B.SFunction1_o3_cs != 0.0);
18690 L4_MABX_B.RX_status_c1 = L4_MABX_B.RX_status_br;
18691 break;
18692
18693 case ENUM_CAN_RX_T_RX_CAN_3:
18694 L4_MABX_B.RX_status_c1 = L4_MABX_B.RX_status_aq;
18695 break;
18696
18697 case ENUM_CAN_RX_T_RX_CAN_4:
18698 L4_MABX_B.RX_status_c1 = L4_MABX_B.RX_status_aq;
18699 break;
18700
18701 case ENUM_CAN_RX_T_RX_CAN_5:
18702 L4_MABX_B.RX_status_c1 = L4_MABX_B.RX_status_aq;
18703 break;
18704
18705 case ENUM_CAN_RX_T_RX_CAN_6:
18706 L4_MABX_B.RX_status_c1 = L4_MABX_B.RX_status_aq;
18707 break;
18708
18709 default:
18710 L4_MABX_B.RX_status_c1 = L4_MABX_B.RX_status_aq;
18711 break;
18712 }
18713
18714 /* DataTypeConversion: '<S605>/Data Type Conversion9' */
18715 L4_MABX_B.RX_time_l = L4_MABX_B.SFunction1_o4_jn;
18716
18717 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18718 * Constant: '<S441>/Constant'
18719 */
18720 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18721 case ENUM_CAN_RX_T_RX_CAN_1:
18722 /* DataTypeConversion: '<S603>/Data Type Conversion9' */
18723 L4_MABX_B.RX_time_of0 = L4_MABX_B.SFunction1_o4_i;
18724 L4_MABX_B.RX_time_kj = L4_MABX_B.RX_time_of0;
18725 break;
18726
18727 case ENUM_CAN_RX_T_RX_CAN_2:
18728 /* DataTypeConversion: '<S604>/Data Type Conversion9' */
18729 L4_MABX_B.RX_time_do = L4_MABX_B.SFunction1_o4_e0;
18730 L4_MABX_B.RX_time_kj = L4_MABX_B.RX_time_do;
18731 break;
18732
18733 case ENUM_CAN_RX_T_RX_CAN_3:
18734 L4_MABX_B.RX_time_kj = L4_MABX_B.RX_time_l;
18735 break;
18736
18737 case ENUM_CAN_RX_T_RX_CAN_4:
18738 L4_MABX_B.RX_time_kj = L4_MABX_B.RX_time_l;
18739 break;
18740
18741 case ENUM_CAN_RX_T_RX_CAN_5:
18742 L4_MABX_B.RX_time_kj = L4_MABX_B.RX_time_l;
18743 break;
18744
18745 case ENUM_CAN_RX_T_RX_CAN_6:
18746 L4_MABX_B.RX_time_kj = L4_MABX_B.RX_time_l;
18747 break;
18748
18749 default:
18750 L4_MABX_B.RX_time_kj = L4_MABX_B.RX_time_l;
18751 break;
18752 }
18753
18754 /* DataTypeConversion: '<S605>/Data Type Conversion10' */
18755 L4_MABX_B.RX_delta_time_cq = L4_MABX_B.SFunction1_o5_o;
18756
18757 /* MultiPortSwitch: '<S441>/Multiport_Switch' incorporates:
18758 * Constant: '<S441>/Constant'
18759 */
18760 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18761 case ENUM_CAN_RX_T_RX_CAN_1:
18762 /* DataTypeConversion: '<S603>/Data Type Conversion10' */
18763 L4_MABX_B.RX_delta_time_nn = L4_MABX_B.SFunction1_o5_ir;
18764 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_nn;
18765 break;
18766
18767 case ENUM_CAN_RX_T_RX_CAN_2:
18768 /* DataTypeConversion: '<S604>/Data Type Conversion10' */
18769 L4_MABX_B.RX_delta_time_jq = L4_MABX_B.SFunction1_o5_c5;
18770 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_jq;
18771 break;
18772
18773 case ENUM_CAN_RX_T_RX_CAN_3:
18774 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_cq;
18775 break;
18776
18777 case ENUM_CAN_RX_T_RX_CAN_4:
18778 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_cq;
18779 break;
18780
18781 case ENUM_CAN_RX_T_RX_CAN_5:
18782 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_cq;
18783 break;
18784
18785 case ENUM_CAN_RX_T_RX_CAN_6:
18786 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_cq;
18787 break;
18788
18789 default:
18790 L4_MABX_B.RX_delta_time_b = L4_MABX_B.RX_delta_time_cq;
18791 break;
18792 }
18793
18794 /* RelationalOperator: '<S613>/Operator' incorporates:
18795 * Constant: '<S441>/Constant'
18796 * Constant: '<S606>/Constant3'
18797 */
18798 L4_MABX_B.Operator_oxz = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18799 L4_MABX_P.Constant3_Value_i);
18800
18801 /* RelationalOperator: '<S614>/Operator' incorporates:
18802 * Constant: '<S441>/Constant'
18803 * Constant: '<S606>/Constant4'
18804 */
18805 L4_MABX_B.Operator_ny = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18806 L4_MABX_P.Constant4_Value_i);
18807
18808 /* RelationalOperator: '<S615>/Operator' incorporates:
18809 * Constant: '<S441>/Constant'
18810 * Constant: '<S606>/Constant5'
18811 */
18812 L4_MABX_B.Operator_brq = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18813 L4_MABX_P.Constant5_Value_c);
18814
18815 /* Outputs for Enabled SubSystem: '<S616>/PX2_LaneEdgeLeft' incorporates:
18816 * EnablePort: '<S617>/Enable'
18817 */
18818 /* Constant: '<S442>/Constant' */
18819 if (L4_MABX_P.Constant_Value_pe) {
18820 /* S-Function (rti_commonblock): '<S617>/S-Function1' */
18821 /* This comment workarounds a code generation problem */
18822
18823 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeLeft" Id:770 */
18824 {
18825 UInt32 *CAN_Msg;
18826 static dsfloat time_old = 0.0;
18827
18828 /* Read status and timestamp info (previous message) */
18829 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp !=
18830 time_old) {
18831 /* ... save timestamp info for the calculation of the RX status
18832 during the consecutive sample hit*/
18833 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18834
18835 /* ... set the processed flag to one */
18836 L4_MABX_B.SFunction1_o4_o = 1.0;
18837 L4_MABX_B.SFunction1_o5_g5 = (real_T)
18838 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18839 L4_MABX_B.SFunction1_o6_n = (real_T)
18840 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].deltatime;
18841 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].data;
18842
18843 /* Decode CAN message */
18844 {
18845 {
18846 rtican_Signal_t CAN_Sgn;
18847
18848 /* ...... "PX2_LaneEdgeLeftAngle" (0|16, standard signal, signed int, little endian) */
18849 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18850 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18851 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18852 if (CAN_Sgn.SignedSgn >> 15) {
18853 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18854 }
18855
18856 L4_MABX_B.SFunction1_o1_ld = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18857
18858 /* ...... "PX2_LaneEdgeLeftNumPoints" (16|8, standard signal, unsigned int, little endian) */
18859 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18860 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18861 L4_MABX_B.SFunction1_o2_dx = ((real_T) CAN_Sgn.UnsignedSgn);
18862
18863 /* ...... "PX2_LaneEdgeLeftPosition" (24|16, standard signal, signed int, little endian) */
18864 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18865 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18866 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18867 if (CAN_Sgn.SignedSgn >> 15) {
18868 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18869 }
18870
18871 L4_MABX_B.SFunction1_o3_ip = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18872 }
18873 }
18874 } else {
18875 /* set RX status to 0 because no new message has arrived */
18876 L4_MABX_B.SFunction1_o4_o = 0.0;
18877 }
18878 }
18879 }
18880
18881 /* End of Outputs for SubSystem: '<S616>/PX2_LaneEdgeLeft' */
18882
18883 /* DataTypeConversion: '<S616>/Data Type Conversion1' */
18884 L4_MABX_B.RX_delta_time_bf = L4_MABX_B.SFunction1_o6_n;
18885
18886 /* DataTypeConversion: '<S616>/Data Type Conversion10' */
18887 L4_MABX_B.RX_delta_time_kk = L4_MABX_B.SFunction1_o7_i;
18888
18889 /* DataTypeConversion: '<S616>/Data Type Conversion2' */
18890 L4_MABX_B.RX_status_md = (L4_MABX_B.SFunction1_o4_o != 0.0);
18891
18892 /* DataTypeConversion: '<S616>/Data Type Conversion3' */
18893 L4_MABX_B.RX_time_kg = L4_MABX_B.SFunction1_o5_g5;
18894
18895 /* Outputs for Enabled SubSystem: '<S616>/PX2_LaneEdgeRight' incorporates:
18896 * EnablePort: '<S618>/Enable'
18897 */
18898 /* Constant: '<S442>/Constant' */
18899 if (L4_MABX_P.Constant_Value_pe) {
18900 /* S-Function (rti_commonblock): '<S618>/S-Function1' */
18901 /* This comment workarounds a code generation problem */
18902
18903 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeRight" Id:771 */
18904 {
18905 UInt32 *CAN_Msg;
18906 static dsfloat time_old = 0.0;
18907
18908 /* Read status and timestamp info (previous message) */
18909 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp !=
18910 time_old) {
18911 /* ... save timestamp info for the calculation of the RX status
18912 during the consecutive sample hit*/
18913 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18914
18915 /* ... set the processed flag to one */
18916 L4_MABX_B.SFunction1_o4_fc = 1.0;
18917 L4_MABX_B.SFunction1_o5_dq = (real_T)
18918 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18919 L4_MABX_B.SFunction1_o6_g = (real_T)
18920 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].deltatime;
18921 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].data;
18922
18923 /* Decode CAN message */
18924 {
18925 {
18926 rtican_Signal_t CAN_Sgn;
18927
18928 /* ...... "PX2_LaneEdgeRightAngle" (0|16, standard signal, signed int, little endian) */
18929 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18930 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18931 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18932 if (CAN_Sgn.SignedSgn >> 15) {
18933 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18934 }
18935
18936 L4_MABX_B.SFunction1_o1_ew = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18937
18938 /* ...... "PX2_LaneEdgeRightNumPoints" (16|8, standard signal, unsigned int, little endian) */
18939 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18940 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18941 L4_MABX_B.SFunction1_o2_do = ((real_T) CAN_Sgn.UnsignedSgn);
18942
18943 /* ...... "PX2_LaneEdgeRightPosition" (24|16, standard signal, signed int, little endian) */
18944 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18945 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18946 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18947 if (CAN_Sgn.SignedSgn >> 15) {
18948 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18949 }
18950
18951 L4_MABX_B.SFunction1_o3_di = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18952 }
18953 }
18954 } else {
18955 /* set RX status to 0 because no new message has arrived */
18956 L4_MABX_B.SFunction1_o4_fc = 0.0;
18957 }
18958 }
18959 }
18960
18961 /* End of Outputs for SubSystem: '<S616>/PX2_LaneEdgeRight' */
18962
18963 /* DataTypeConversion: '<S616>/Data Type Conversion4' */
18964 L4_MABX_B.RX_delta_time_fh = L4_MABX_B.SFunction1_o6_g;
18965
18966 /* DataTypeConversion: '<S616>/Data Type Conversion5' */
18967 L4_MABX_B.RX_status_ib = (L4_MABX_B.SFunction1_o4_fc != 0.0);
18968
18969 /* DataTypeConversion: '<S616>/Data Type Conversion6' */
18970 L4_MABX_B.RX_time_i0 = L4_MABX_B.SFunction1_o5_dq;
18971
18972 /* DataTypeConversion: '<S616>/Data Type Conversion8' */
18973 L4_MABX_B.RX_status_iq = (L4_MABX_B.SFunction1_o5_dn != 0.0);
18974
18975 /* DataTypeConversion: '<S616>/Data Type Conversion9' */
18976 L4_MABX_B.RX_time_of = L4_MABX_B.SFunction1_o6_dd;
18977
18978 /* Switch: '<S620>/Switch' */
18979 if (L4_MABX_B.If_Then_Else.Switch) {
18980 /* DataTypeConversion: '<S620>/Data Type Conversion8' */
18981 L4_MABX_B.RX_status_eu = (L4_MABX_B.SFunction1_o3_p2 != 0.0);
18982 L4_MABX_B.RX_status_kb = L4_MABX_B.RX_status_eu;
18983
18984 /* DataTypeConversion: '<S620>/Data Type Conversion9' */
18985 L4_MABX_B.RX_time_iq = L4_MABX_B.SFunction1_o4_jw;
18986 L4_MABX_B.RX_time_ja = L4_MABX_B.RX_time_iq;
18987
18988 /* DataTypeConversion: '<S620>/Data Type Conversion10' */
18989 L4_MABX_B.RX_delta_time_gp = L4_MABX_B.SFunction1_o5_c;
18990 L4_MABX_B.RX_delta_time_ce = L4_MABX_B.RX_delta_time_gp;
18991 } else {
18992 /* DataTypeConversion: '<S620>/Data Type Conversion3' */
18993 L4_MABX_B.RX_status_fk = (L4_MABX_B.SFunction1_o3_ah != 0.0);
18994 L4_MABX_B.RX_status_kb = L4_MABX_B.RX_status_fk;
18995
18996 /* DataTypeConversion: '<S620>/Data Type Conversion2' */
18997 L4_MABX_B.RX_time_pg = L4_MABX_B.SFunction1_o4_l4;
18998 L4_MABX_B.RX_time_ja = L4_MABX_B.RX_time_pg;
18999
19000 /* DataTypeConversion: '<S620>/Data Type Conversion1' */
19001 L4_MABX_B.RX_delta_time_bk = L4_MABX_B.SFunction1_o5_ic;
19002 L4_MABX_B.RX_delta_time_ce = L4_MABX_B.RX_delta_time_bk;
19003 }
19004
19005 /* DataTypeConversion: '<S623>/Data Type Conversion1' */
19006 L4_MABX_B.XPR1ControlStatus = L4_MABX_B.SFunction1_o6_dv;
19007
19008 /* DataTypeConversion: '<S623>/Data Type Conversion10' */
19009 L4_MABX_B.RX_delta_time_jp = L4_MABX_B.SFunction1_o13_d;
19010
19011 /* DataTypeConversion: '<S623>/Data Type Conversion2' */
19012 L4_MABX_B.XPR2ControlStatus = L4_MABX_B.SFunction1_o7_k3;
19013
19014 /* DataTypeConversion: '<S623>/Data Type Conversion3' */
19015 L4_MABX_B.XPR3ControlStatus = L4_MABX_B.SFunction1_o8_h;
19016
19017 /* DataTypeConversion: '<S623>/Data Type Conversion8' */
19018 L4_MABX_B.RX_status_kx = (L4_MABX_B.SFunction1_o11_e != 0.0);
19019
19020 /* DataTypeConversion: '<S623>/Data Type Conversion9' */
19021 L4_MABX_B.RX_time_gm = L4_MABX_B.SFunction1_o12_g;
19022
19023 /* DataTypeConversion: '<S625>/Data Type Conversion10' */
19024 L4_MABX_B.RX_delta_time_ot = L4_MABX_B.SFunction1_o10_d;
19025
19026 /* DataTypeConversion: '<S625>/Data Type Conversion8' */
19027 L4_MABX_B.RX_status_a2 = (L4_MABX_B.SFunction1_o8_iv != 0.0);
19028
19029 /* DataTypeConversion: '<S625>/Data Type Conversion9' */
19030 L4_MABX_B.RX_time_o4 = L4_MABX_B.SFunction1_o9_n;
19031
19032 /* Outputs for Enabled SubSystem: '<S627>/PX2_MapLaneEgoLeft' incorporates:
19033 * EnablePort: '<S628>/Enable'
19034 */
19035 /* Constant: '<S446>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19036 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLeft) {
19037 /* S-Function (rti_commonblock): '<S628>/S-Function1' */
19038 /* This comment workarounds a code generation problem */
19039
19040 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoLeft" Id:1542 */
19041 {
19042 UInt32 *CAN_Msg;
19043 static dsfloat time_old = 0.0;
19044
19045 /* Read status and timestamp info (previous message) */
19046 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp !=
19047 time_old) {
19048 /* ... save timestamp info for the calculation of the RX status
19049 during the consecutive sample hit*/
19050 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
19051
19052 /* ... set the processed flag to one */
19053 L4_MABX_B.SFunction1_o7_d = 1.0;
19054 L4_MABX_B.SFunction1_o8_io = (real_T)
19055 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
19056 L4_MABX_B.SFunction1_o9_b = (real_T)
19057 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].deltatime;
19058 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].data;
19059
19060 /* Decode CAN message */
19061 {
19062 {
19063 rtican_Signal_t CAN_Sgn;
19064
19065 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
19066 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19067 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19068 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19069 if (CAN_Sgn.SignedSgn >> 15) {
19070 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19071 }
19072
19073 L4_MABX_B.SFunction1_o1_gl = 0.00390625 * ( ((real_T)
19074 CAN_Sgn.SignedSgn) );
19075
19076 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
19077 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19078 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19079 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19080 if (CAN_Sgn.SignedSgn >> 15) {
19081 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19082 }
19083
19084 L4_MABX_B.SFunction1_o2_bg = 0.00390625 * ( ((real_T)
19085 CAN_Sgn.SignedSgn) );
19086
19087 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
19088 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19089 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19090 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19091 if (CAN_Sgn.SignedSgn >> 15) {
19092 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19093 }
19094
19095 L4_MABX_B.SFunction1_o3_kp = 0.00390625 * ( ((real_T)
19096 CAN_Sgn.SignedSgn) );
19097
19098 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19099 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19100 CAN_Sgn.UnsignedSgn &= 0x00000003;
19101 L4_MABX_B.SFunction1_o4_pg = ((real_T) CAN_Sgn.UnsignedSgn);
19102
19103 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19104 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19105 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19106 CAN_Sgn.UnsignedSgn &= 0x00000003;
19107 L4_MABX_B.SFunction1_o5_h = ((real_T) CAN_Sgn.UnsignedSgn);
19108
19109 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19110 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19111 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19112 CAN_Sgn.UnsignedSgn &= 0x00000003;
19113 L4_MABX_B.SFunction1_o6_dg = ((real_T) CAN_Sgn.UnsignedSgn);
19114 }
19115 }
19116 } else {
19117 /* set RX status to 0 because no new message has arrived */
19118 L4_MABX_B.SFunction1_o7_d = 0.0;
19119 }
19120 }
19121 }
19122
19123 /* End of Constant: '<S446>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19124 /* End of Outputs for SubSystem: '<S627>/PX2_MapLaneEgoLeft' */
19125
19126 /* DataTypeConversion: '<S627>/Data Type Conversion10' */
19127 L4_MABX_B.RX_delta_time_lr = L4_MABX_B.SFunction1_o9_b;
19128
19129 /* DataTypeConversion: '<S627>/Data Type Conversion8' */
19130 L4_MABX_B.RX_status_pe = (L4_MABX_B.SFunction1_o7_d != 0.0);
19131
19132 /* DataTypeConversion: '<S627>/Data Type Conversion9' */
19133 L4_MABX_B.RX_time_io = L4_MABX_B.SFunction1_o8_io;
19134
19135 /* Outputs for Enabled SubSystem: '<S629>/PX2_MapLaneEgoRight' incorporates:
19136 * EnablePort: '<S630>/Enable'
19137 */
19138 /* Constant: '<S447>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19139 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLe_g) {
19140 /* S-Function (rti_commonblock): '<S630>/S-Function1' */
19141 /* This comment workarounds a code generation problem */
19142
19143 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoRight" Id:1541 */
19144 {
19145 UInt32 *CAN_Msg;
19146 static dsfloat time_old = 0.0;
19147
19148 /* Read status and timestamp info (previous message) */
19149 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp !=
19150 time_old) {
19151 /* ... save timestamp info for the calculation of the RX status
19152 during the consecutive sample hit*/
19153 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
19154
19155 /* ... set the processed flag to one */
19156 L4_MABX_B.SFunction1_o7_n = 1.0;
19157 L4_MABX_B.SFunction1_o8_j = (real_T)
19158 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
19159 L4_MABX_B.SFunction1_o9_fb = (real_T)
19160 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].deltatime;
19161 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].data;
19162
19163 /* Decode CAN message */
19164 {
19165 {
19166 rtican_Signal_t CAN_Sgn;
19167
19168 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
19169 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19170 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19171 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19172 if (CAN_Sgn.SignedSgn >> 15) {
19173 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19174 }
19175
19176 L4_MABX_B.SFunction1_o1_d = 0.00390625 * ( ((real_T)
19177 CAN_Sgn.SignedSgn) );
19178
19179 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
19180 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19181 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19182 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19183 if (CAN_Sgn.SignedSgn >> 15) {
19184 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19185 }
19186
19187 L4_MABX_B.SFunction1_o2_d2 = 0.00390625 * ( ((real_T)
19188 CAN_Sgn.SignedSgn) );
19189
19190 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
19191 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19192 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19193 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19194 if (CAN_Sgn.SignedSgn >> 15) {
19195 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19196 }
19197
19198 L4_MABX_B.SFunction1_o3_fr = 0.00390625 * ( ((real_T)
19199 CAN_Sgn.SignedSgn) );
19200
19201 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19202 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19203 CAN_Sgn.UnsignedSgn &= 0x00000003;
19204 L4_MABX_B.SFunction1_o4_f2 = ((real_T) CAN_Sgn.UnsignedSgn);
19205
19206 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19207 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19208 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19209 CAN_Sgn.UnsignedSgn &= 0x00000003;
19210 L4_MABX_B.SFunction1_o5_i = ((real_T) CAN_Sgn.UnsignedSgn);
19211
19212 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19213 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19214 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19215 CAN_Sgn.UnsignedSgn &= 0x00000003;
19216 L4_MABX_B.SFunction1_o6_cp = ((real_T) CAN_Sgn.UnsignedSgn);
19217 }
19218 }
19219 } else {
19220 /* set RX status to 0 because no new message has arrived */
19221 L4_MABX_B.SFunction1_o7_n = 0.0;
19222 }
19223 }
19224 }
19225
19226 /* End of Constant: '<S447>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19227 /* End of Outputs for SubSystem: '<S629>/PX2_MapLaneEgoRight' */
19228
19229 /* DataTypeConversion: '<S629>/Data Type Conversion10' */
19230 L4_MABX_B.RX_delta_time_d = L4_MABX_B.SFunction1_o9_fb;
19231
19232 /* DataTypeConversion: '<S629>/Data Type Conversion8' */
19233 L4_MABX_B.RX_status_f0 = (L4_MABX_B.SFunction1_o7_n != 0.0);
19234
19235 /* DataTypeConversion: '<S629>/Data Type Conversion9' */
19236 L4_MABX_B.RX_time_ke = L4_MABX_B.SFunction1_o8_j;
19237
19238 /* Outputs for Enabled SubSystem: '<S631>/PX2_EgoLanePos' incorporates:
19239 * EnablePort: '<S632>/Enable'
19240 */
19241 /* Constant: '<S448>/Constant' */
19242 if (L4_MABX_P.Constant_Value_bp) {
19243 /* S-Function (rti_commonblock): '<S632>/S-Function1' */
19244 /* This comment workarounds a code generation problem */
19245
19246 /* dSPACE RTICAN RX Message Block: "PX2_EgoLanePos" Id:1540 */
19247 {
19248 UInt32 *CAN_Msg;
19249 static dsfloat time_old = 0.0;
19250
19251 /* Read status and timestamp info (previous message) */
19252 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp !=
19253 time_old) {
19254 /* ... save timestamp info for the calculation of the RX status
19255 during the consecutive sample hit*/
19256 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19257
19258 /* ... set the processed flag to one */
19259 L4_MABX_B.SFunction1_o7_c = 1.0;
19260 L4_MABX_B.SFunction1_o8_i = (real_T)
19261 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19262 L4_MABX_B.SFunction1_o9_m = (real_T)
19263 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].deltatime;
19264 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].data;
19265
19266 /* Decode CAN message */
19267 {
19268 {
19269 rtican_Signal_t CAN_Sgn;
19270
19271 /* ...... "PX2_EgoLaneNearPosErr" (0|16, standard signal, signed int, little endian) */
19272 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19273 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19274 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19275 if (CAN_Sgn.SignedSgn >> 15) {
19276 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19277 }
19278
19279 L4_MABX_B.SFunction1_o1_nn = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19280
19281 /* ...... "PX2_EgoLaneMidPosErr" (16|16, standard signal, signed int, little endian) */
19282 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19283 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19284 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19285 if (CAN_Sgn.SignedSgn >> 15) {
19286 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19287 }
19288
19289 L4_MABX_B.SFunction1_o2_pb = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19290
19291 /* ...... "PX2_EgoLaneFarPosErr" (32|16, standard signal, signed int, little endian) */
19292 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19293 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19294 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19295 if (CAN_Sgn.SignedSgn >> 15) {
19296 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19297 }
19298
19299 L4_MABX_B.SFunction1_o3_ef = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19300
19301 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19302 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19303 CAN_Sgn.UnsignedSgn &= 0x00000003;
19304 L4_MABX_B.SFunction1_o4_cw = ((real_T) CAN_Sgn.UnsignedSgn);
19305
19306 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19307 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19308 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19309 CAN_Sgn.UnsignedSgn &= 0x00000003;
19310 L4_MABX_B.SFunction1_o5_n = ((real_T) CAN_Sgn.UnsignedSgn);
19311
19312 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19313 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19314 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19315 CAN_Sgn.UnsignedSgn &= 0x00000003;
19316 L4_MABX_B.SFunction1_o6_p = ((real_T) CAN_Sgn.UnsignedSgn);
19317 }
19318 }
19319 } else {
19320 /* set RX status to 0 because no new message has arrived */
19321 L4_MABX_B.SFunction1_o7_c = 0.0;
19322 }
19323 }
19324 }
19325
19326 /* End of Constant: '<S448>/Constant' */
19327 /* End of Outputs for SubSystem: '<S631>/PX2_EgoLanePos' */
19328
19329 /* DataTypeConversion: '<S631>/Data Type Conversion10' */
19330 L4_MABX_B.RX_delta_time_by = L4_MABX_B.SFunction1_o9_m;
19331
19332 /* DataTypeConversion: '<S631>/Data Type Conversion8' */
19333 L4_MABX_B.RX_status_ky = (L4_MABX_B.SFunction1_o7_c != 0.0);
19334
19335 /* DataTypeConversion: '<S631>/Data Type Conversion9' */
19336 L4_MABX_B.RX_time_fl = L4_MABX_B.SFunction1_o8_i;
19337
19338 /* DataTypeConversion: '<S633>/Data Type Conversion10' */
19339 L4_MABX_B.RX_delta_time_i = L4_MABX_B.SFunction1_o7_o;
19340
19341 /* DataTypeConversion: '<S633>/Data Type Conversion9' */
19342 L4_MABX_B.RX_time_e = L4_MABX_B.SFunction1_o6_d;
19343
19344 /* DataTypeConversion: '<S635>/Data Type Conversion10' */
19345 L4_MABX_B.RX_delta_time_d3 = L4_MABX_B.SFunction1_o28;
19346
19347 /* DataTypeConversion: '<S635>/Data Type Conversion8' */
19348 L4_MABX_B.RX_status_k1 = (L4_MABX_B.SFunction1_o26 != 0.0);
19349
19350 /* DataTypeConversion: '<S635>/Data Type Conversion9' */
19351 L4_MABX_B.RX_time_p = L4_MABX_B.SFunction1_o27;
19352
19353 /* DataTypeConversion: '<S637>/Data Type Conversion10' */
19354 L4_MABX_B.RX_delta_time_kw = L4_MABX_B.SFunction1_o10;
19355
19356 /* DataTypeConversion: '<S637>/Data Type Conversion8' */
19357 L4_MABX_B.RX_status_o0 = (L4_MABX_B.SFunction1_o8_p != 0.0);
19358
19359 /* DataTypeConversion: '<S637>/Data Type Conversion9' */
19360 L4_MABX_B.RX_time_c = L4_MABX_B.SFunction1_o9_k;
19361
19362 /* DataTypeConversion: '<S639>/Data Type Conversion10' */
19363 L4_MABX_B.RX_delta_time_kx = L4_MABX_B.SFunction1_o9;
19364
19365 /* DataTypeConversion: '<S639>/Data Type Conversion8' */
19366 L4_MABX_B.RX_status_ef = (L4_MABX_B.SFunction1_o7_a != 0.0);
19367
19368 /* DataTypeConversion: '<S639>/Data Type Conversion9' */
19369 L4_MABX_B.RX_time_jn = L4_MABX_B.SFunction1_o8_b;
19370
19371 /* Outputs for Enabled SubSystem: '<S641>/VEP1' incorporates:
19372 * EnablePort: '<S642>/Enable'
19373 */
19374 /* Constant: '<S453>/Constant' */
19375 if (L4_MABX_P.Constant_Value_at > 0.0) {
19376 /* S-Function (rti_commonblock): '<S642>/S-Function1' */
19377 /* This comment workarounds a code generation problem */
19378
19379 /* dSPACE RTICAN RX Message Block: "VEP1" Id:419362563 */
19380 {
19381 UInt32 *CAN_Msg;
19382 static dsfloat time_old = 0.0;
19383
19384 /* Read status and timestamp info (previous message) */
19385 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp !=
19386 time_old) {
19387 /* ... save timestamp info for the calculation of the RX status
19388 during the consecutive sample hit*/
19389 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].
19390 timestamp;
19391
19392 /* ... set the processed flag to one */
19393 L4_MABX_B.SFunction1_o6 = 1.0;
19394 L4_MABX_B.SFunction1_o7 = (real_T)
19395 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp;
19396 L4_MABX_B.SFunction1_o8 = (real_T)
19397 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].deltatime;
19398 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].data;
19399
19400 /* Decode CAN message */
19401 {
19402 {
19403 rtican_Signal_t CAN_Sgn;
19404
19405 /* ...... "NetBatteryCurrent" (0|8, standard signal, unsigned int, little endian) */
19406 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19407 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19408 L4_MABX_B.SFunction1_o1_a = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
19409
19410 /* ...... "AltCurrent" (8|8, standard signal, unsigned int, little endian) */
19411 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19412 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19413 L4_MABX_B.SFunction1_o2_ho = ((real_T) CAN_Sgn.UnsignedSgn);
19414
19415 /* ...... "ChargingSystemPotential" (16|16, standard signal, unsigned int, little endian) */
19416 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19417 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19418 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19419 L4_MABX_B.SFunction1_o3_o0 = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19420 );
19421
19422 /* ...... "BatteryPotential_PowerInput1" (32|16, standard signal, unsigned int, little endian) */
19423 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19424 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19425 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19426 L4_MABX_B.SFunction1_o4_pj = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19427 );
19428
19429 /* ...... "KeyswitchBatteryPotential" (48|16, standard signal, unsigned int, little endian) */
19430 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19431 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
19432 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19433 L4_MABX_B.SFunction1_o5 = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
19434 }
19435 }
19436 } else {
19437 /* set RX status to 0 because no new message has arrived */
19438 L4_MABX_B.SFunction1_o6 = 0.0;
19439 }
19440 }
19441 }
19442
19443 /* End of Constant: '<S453>/Constant' */
19444 /* End of Outputs for SubSystem: '<S641>/VEP1' */
19445
19446 /* DataTypeConversion: '<S641>/Data Type Conversion1' */
19447 L4_MABX_B.PitchAngleExRange_a = L4_MABX_B.SFunction1_o1_a;
19448
19449 /* DataTypeConversion: '<S641>/Data Type Conversion10' */
19450 L4_MABX_B.RX_delta_time_ox = L4_MABX_B.SFunction1_o8;
19451
19452 /* DataTypeConversion: '<S641>/Data Type Conversion2' */
19453 L4_MABX_B.AltCurrent = L4_MABX_B.SFunction1_o2_ho;
19454
19455 /* DataTypeConversion: '<S641>/Data Type Conversion3' */
19456 L4_MABX_B.ChargingSystemPotential = L4_MABX_B.SFunction1_o3_o0;
19457
19458 /* DataTypeConversion: '<S641>/Data Type Conversion4' */
19459 L4_MABX_B.BatteryPotential_PowerInput1 = L4_MABX_B.SFunction1_o4_pj;
19460
19461 /* DataTypeConversion: '<S641>/Data Type Conversion5' */
19462 L4_MABX_B.KeyswitchBatteryPotential = L4_MABX_B.SFunction1_o5;
19463
19464 /* DataTypeConversion: '<S641>/Data Type Conversion8' */
19465 L4_MABX_B.RX_status_ic = (L4_MABX_B.SFunction1_o6 != 0.0);
19466
19467 /* DataTypeConversion: '<S641>/Data Type Conversion9' */
19468 L4_MABX_B.RX_time_as = L4_MABX_B.SFunction1_o7;
19469
19470 /* RelationalOperator: '<S644>/Relational Operator2' incorporates:
19471 * Constant: '<S644>/TRUCK_166_VIN_CPV'
19472 */
19473 L4_MABX_B.RelationalOperator2[0] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[0] !=
19474 L4_MABX_B.DataTypeConversion_m1);
19475 L4_MABX_B.RelationalOperator2[1] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[1] !=
19476 L4_MABX_B.DataTypeConversion1_af);
19477 L4_MABX_B.RelationalOperator2[2] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[2] !=
19478 L4_MABX_B.DataTypeConversion2_fs);
19479 L4_MABX_B.RelationalOperator2[3] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[3] !=
19480 L4_MABX_B.DataTypeConversion3_k5);
19481 L4_MABX_B.RelationalOperator2[4] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[4] !=
19482 L4_MABX_B.DataTypeConversion4_f3);
19483 L4_MABX_B.RelationalOperator2[5] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[5] !=
19484 L4_MABX_B.DataTypeConversion5_gs);
19485 L4_MABX_B.RelationalOperator2[6] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[6] !=
19486 L4_MABX_B.DataTypeConversion6_a);
19487 L4_MABX_B.RelationalOperator2[7] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[7] !=
19488 L4_MABX_B.DataTypeConversion7_ae);
19489 L4_MABX_B.RelationalOperator2[8] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[8] !=
19490 L4_MABX_B.DataTypeConversion8_p5);
19491 L4_MABX_B.RelationalOperator2[9] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[9] !=
19492 L4_MABX_B.DataTypeConversion9_p);
19493 L4_MABX_B.RelationalOperator2[10] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[10] !=
19494 L4_MABX_B.DataTypeConversion10_g);
19495 L4_MABX_B.RelationalOperator2[11] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[11] !=
19496 L4_MABX_B.DataTypeConversion11_g);
19497 L4_MABX_B.RelationalOperator2[12] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[12] !=
19498 L4_MABX_B.DataTypeConversion12);
19499 L4_MABX_B.RelationalOperator2[13] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[13] !=
19500 L4_MABX_B.DataTypeConversion14_p);
19501 L4_MABX_B.RelationalOperator2[14] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[14] !=
19502 L4_MABX_B.DataTypeConversion13_o);
19503 L4_MABX_B.RelationalOperator2[15] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[15] !=
19504 L4_MABX_B.DataTypeConversion15_f);
19505 L4_MABX_B.RelationalOperator2[16] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[16] !=
19506 L4_MABX_B.DataTypeConversion16_o);
19507
19508 /* Sum: '<S644>/Add1' */
19509 tmp = 0U;
19510 for (i = 0; i < 17; i++) {
19511 tmp += L4_MABX_B.RelationalOperator2[i];
19512 }
19513
19514 L4_MABX_B.Add1_kk = (uint8_T)tmp;
19515
19516 /* End of Sum: '<S644>/Add1' */
19517
19518 /* RelationalOperator: '<S649>/Compare' incorporates:
19519 * Constant: '<S649>/Constant'
19520 */
19521 L4_MABX_B.Compare_ks = (L4_MABX_B.Add1_kk == L4_MABX_P.Constant_Value_fn);
19522
19523 /* UnitDelay: '<S644>/Unit_Delay2' */
19524 L4_MABX_B.Unit_Delay2_ap = L4_MABX_DW.Unit_Delay2_DSTATE_j;
19525
19526 /* Logic: '<S644>/Logical Operator1' */
19527 L4_MABX_B.LogicalOperator1_b = (L4_MABX_B.Unit_Delay2_ap &&
19528 L4_MABX_B.Compare_ks);
19529
19530 /* Logic: '<S650>/Logical Operator2' */
19531 L4_MABX_B.LogicalOperator2_d = !L4_MABX_B.LogicalOperator1_p;
19532
19533 /* UnitDelay: '<S644>/Unit_Delay1' */
19534 L4_MABX_B.Unit_Delay1_f = L4_MABX_DW.Unit_Delay1_DSTATE_p;
19535
19536 /* Logic: '<S651>/Logical Operator3' */
19537 L4_MABX_B.LogicalOperator3_b = !L4_MABX_B.Unit_Delay1_f;
19538
19539 /* UnitDelay: '<S651>/Unit_Delay' */
19540 L4_MABX_B.Unit_Delay_js = L4_MABX_DW.Unit_Delay_DSTATE_j0;
19541
19542 /* Logic: '<S651>/Logical Operator' */
19543 L4_MABX_B.LogicalOperator_en = (L4_MABX_B.LogicalOperator3_b &&
19544 L4_MABX_B.Unit_Delay_js);
19545
19546 /* Logic: '<S651>/Logical Operator1' */
19547 L4_MABX_B.LogicalOperator1_n = (L4_MABX_B.LogicalOperator1_b ||
19548 L4_MABX_B.LogicalOperator_en);
19549
19550 /* Logic: '<S651>/Logical Operator2' */
19551 L4_MABX_B.LogicalOperator2_g = !L4_MABX_B.LogicalOperator1_n;
19552
19553 /* Constant: '<S410>/Constant2' */
19554 L4_MABX_B.PX2_HeartBeat = L4_MABX_P.Constant2_Value_f;
19555
19556 /* RelationalOperator: '<S688>/Operator' incorporates:
19557 * Constant: '<S464>/Constant1'
19558 */
19559 L4_MABX_B.Operator_fs = (L4_MABX_B.DataTypeConversion_g5[0] ==
19560 L4_MABX_P.Constant1_Value_a0);
19561
19562 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_CTS' incorporates:
19563 * EnablePort: '<S683>/Enable'
19564 */
19565 if (L4_MABX_B.Operator_fs) {
19566 /* SignalConversion: '<S700>/Signal Conversion' */
19567 L4_MABX_B.SPN2556_ControlByte_c = L4_MABX_B.DataTypeConversion_g5[0];
19568
19569 /* SignalConversion: '<S701>/Signal Conversion' */
19570 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = L4_MABX_B.DataTypeConversion_g5
19571 [1];
19572
19573 /* SignalConversion: '<S702>/Signal Conversion' */
19574 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = L4_MABX_B.DataTypeConversion_g5
19575 [2];
19576
19577 /* DataTypeConversion: '<S703>/Data Type Conversion' */
19578 L4_MABX_B.DataTypeConversion_mx = L4_MABX_B.DataTypeConversion_g5[5];
19579
19580 /* DataTypeConversion: '<S703>/Data Type Conversion1' */
19581 L4_MABX_B.DataTypeConversion1_g = L4_MABX_B.DataTypeConversion_g5[6];
19582
19583 /* DataTypeConversion: '<S703>/Data Type Conversion2' */
19584 L4_MABX_B.DataTypeConversion2_iz = L4_MABX_B.DataTypeConversion_g5[7];
19585
19586 /* ArithShift: '<S703>/Shift Arithmetic1' */
19587 L4_MABX_B.ShiftArithmetic1_n = L4_MABX_B.DataTypeConversion1_g << 8;
19588
19589 /* ArithShift: '<S703>/Shift Arithmetic2' */
19590 L4_MABX_B.ShiftArithmetic2_i = L4_MABX_B.DataTypeConversion2_iz << 16;
19591
19592 /* S-Function (sfix_bitop): '<S704>/Operator' */
19593 L4_MABX_B.Operator_lc = L4_MABX_B.DataTypeConversion_mx |
19594 L4_MABX_B.ShiftArithmetic1_n | L4_MABX_B.ShiftArithmetic2_i;
19595
19596 /* DataTypeConversion: '<S704>/DataType' */
19597 L4_MABX_B.DataType_g5 = L4_MABX_B.Operator_lc;
19598 }
19599
19600 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_CTS' */
19601
19602 /* RelationalOperator: '<S691>/Operator' incorporates:
19603 * Constant: '<S464>/Constant4'
19604 */
19605 L4_MABX_B.Operator_py = (L4_MABX_B.DataTypeConversion_g5[0] ==
19606 L4_MABX_P.Constant4_Value_io);
19607
19608 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' incorporates:
19609 * EnablePort: '<S684>/Enable'
19610 */
19611 if (L4_MABX_B.Operator_py) {
19612 /* SignalConversion: '<S706>/Signal Conversion' */
19613 L4_MABX_B.SPN2556_ControlByte_b = L4_MABX_B.DataTypeConversion_g5[0];
19614
19615 /* SignalConversion: '<S707>/Signal Conversion' */
19616 L4_MABX_B.SPN2570_ConnectionAbortReason = L4_MABX_B.DataTypeConversion_g5[1];
19617
19618 /* DataTypeConversion: '<S708>/Data Type Conversion' */
19619 L4_MABX_B.DataTypeConversion_hk = L4_MABX_B.DataTypeConversion_g5[5];
19620
19621 /* DataTypeConversion: '<S708>/Data Type Conversion1' */
19622 L4_MABX_B.DataTypeConversion1_fl = L4_MABX_B.DataTypeConversion_g5[6];
19623
19624 /* DataTypeConversion: '<S708>/Data Type Conversion2' */
19625 L4_MABX_B.DataTypeConversion2_kh = L4_MABX_B.DataTypeConversion_g5[7];
19626
19627 /* ArithShift: '<S708>/Shift Arithmetic1' */
19628 L4_MABX_B.ShiftArithmetic1_e = L4_MABX_B.DataTypeConversion1_fl << 8;
19629
19630 /* ArithShift: '<S708>/Shift Arithmetic2' */
19631 L4_MABX_B.ShiftArithmetic2_e = L4_MABX_B.DataTypeConversion2_kh << 16;
19632
19633 /* S-Function (sfix_bitop): '<S709>/Operator' */
19634 L4_MABX_B.Operator_o = L4_MABX_B.DataTypeConversion_hk |
19635 L4_MABX_B.ShiftArithmetic1_e | L4_MABX_B.ShiftArithmetic2_e;
19636
19637 /* DataTypeConversion: '<S709>/DataType' */
19638 L4_MABX_B.DataType_fi = L4_MABX_B.Operator_o;
19639 }
19640
19641 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' */
19642
19643 /* RelationalOperator: '<S689>/Operator' incorporates:
19644 * Constant: '<S464>/Constant2'
19645 */
19646 L4_MABX_B.Operator_cn = (L4_MABX_B.DataTypeConversion_g5[0] ==
19647 L4_MABX_P.Constant2_Value_jh);
19648
19649 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' incorporates:
19650 * EnablePort: '<S685>/Enable'
19651 */
19652 if (L4_MABX_B.Operator_cn) {
19653 /* SignalConversion: '<S711>/Signal Conversion' */
19654 L4_MABX_B.SPN2556_ControlByte_i = L4_MABX_B.DataTypeConversion_g5[0];
19655
19656 /* DataTypeConversion: '<S712>/Data Type Conversion' */
19657 L4_MABX_B.DataTypeConversion_jz = L4_MABX_B.DataTypeConversion_g5[1];
19658
19659 /* DataTypeConversion: '<S712>/Data Type Conversion1' */
19660 L4_MABX_B.DataTypeConversion1_g4 = L4_MABX_B.DataTypeConversion_g5[2];
19661
19662 /* ArithShift: '<S712>/Shift Arithmetic2' */
19663 L4_MABX_B.ShiftArithmetic2_j = (uint16_T)(L4_MABX_B.DataTypeConversion1_g4 <<
19664 8);
19665
19666 /* S-Function (sfix_bitop): '<S715>/Operator' */
19667 L4_MABX_B.Operator_lp = (uint16_T)(L4_MABX_B.DataTypeConversion_jz |
19668 L4_MABX_B.ShiftArithmetic2_j);
19669
19670 /* DataTypeConversion: '<S715>/DataType' */
19671 L4_MABX_B.DataType_jri = L4_MABX_B.Operator_lp;
19672
19673 /* SignalConversion: '<S713>/Signal Conversion' */
19674 L4_MABX_B.SPN2565_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_g5[3];
19675
19676 /* DataTypeConversion: '<S714>/Data Type Conversion' */
19677 L4_MABX_B.DataTypeConversion_kx = L4_MABX_B.DataTypeConversion_g5[5];
19678
19679 /* DataTypeConversion: '<S714>/Data Type Conversion1' */
19680 L4_MABX_B.DataTypeConversion1_lb = L4_MABX_B.DataTypeConversion_g5[6];
19681
19682 /* DataTypeConversion: '<S714>/Data Type Conversion2' */
19683 L4_MABX_B.DataTypeConversion2_lt = L4_MABX_B.DataTypeConversion_g5[7];
19684
19685 /* ArithShift: '<S714>/Shift Arithmetic1' */
19686 L4_MABX_B.ShiftArithmetic1_d = L4_MABX_B.DataTypeConversion1_lb << 8;
19687
19688 /* ArithShift: '<S714>/Shift Arithmetic2' */
19689 L4_MABX_B.ShiftArithmetic2_o = L4_MABX_B.DataTypeConversion2_lt << 16;
19690
19691 /* S-Function (sfix_bitop): '<S716>/Operator' */
19692 L4_MABX_B.Operator_ep = L4_MABX_B.DataTypeConversion_kx |
19693 L4_MABX_B.ShiftArithmetic1_d | L4_MABX_B.ShiftArithmetic2_o;
19694
19695 /* DataTypeConversion: '<S716>/DataType' */
19696 L4_MABX_B.DataType_jy = L4_MABX_B.Operator_ep;
19697 }
19698
19699 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' */
19700
19701 /* RelationalOperator: '<S687>/Operator' incorporates:
19702 * Constant: '<S464>/Constant'
19703 */
19704 L4_MABX_B.Operator_o0 = (L4_MABX_B.DataTypeConversion_g5[0] ==
19705 L4_MABX_P.Constant_Value_bb);
19706
19707 /* Outputs for Enabled SubSystem: '<S464>/Decode_TPCM_RTS' incorporates:
19708 * EnablePort: '<S686>/Enable'
19709 */
19710 if (L4_MABX_B.Operator_o0) {
19711 /* SignalConversion: '<S718>/Signal Conversion' */
19712 L4_MABX_B.SPN2556_ControlByte = L4_MABX_B.DataTypeConversion_g5[0];
19713
19714 /* DataTypeConversion: '<S719>/Data Type Conversion' */
19715 L4_MABX_B.DataTypeConversion_gd = L4_MABX_B.DataTypeConversion_g5[1];
19716
19717 /* DataTypeConversion: '<S719>/Data Type Conversion1' */
19718 L4_MABX_B.DataTypeConversion1_oh = L4_MABX_B.DataTypeConversion_g5[2];
19719
19720 /* ArithShift: '<S719>/Shift Arithmetic2' */
19721 L4_MABX_B.ShiftArithmetic2_l = (uint16_T)(L4_MABX_B.DataTypeConversion1_oh <<
19722 8);
19723
19724 /* S-Function (sfix_bitop): '<S723>/Operator' */
19725 L4_MABX_B.Operator_k4 = (uint16_T)(L4_MABX_B.DataTypeConversion_gd |
19726 L4_MABX_B.ShiftArithmetic2_l);
19727
19728 /* DataTypeConversion: '<S723>/DataType' */
19729 L4_MABX_B.DataType_jr = L4_MABX_B.Operator_k4;
19730
19731 /* SignalConversion: '<S720>/Signal Conversion' */
19732 L4_MABX_B.SPN2558_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_g5[3];
19733
19734 /* SignalConversion: '<S721>/Signal Conversion' */
19735 L4_MABX_B.SPN2559_MaximumNumberOfPackets = L4_MABX_B.DataTypeConversion_g5[4];
19736
19737 /* DataTypeConversion: '<S722>/Data Type Conversion' */
19738 L4_MABX_B.DataTypeConversion_ah = L4_MABX_B.DataTypeConversion_g5[5];
19739
19740 /* DataTypeConversion: '<S722>/Data Type Conversion1' */
19741 L4_MABX_B.DataTypeConversion1_ip = L4_MABX_B.DataTypeConversion_g5[6];
19742
19743 /* DataTypeConversion: '<S722>/Data Type Conversion2' */
19744 L4_MABX_B.DataTypeConversion2_dq = L4_MABX_B.DataTypeConversion_g5[7];
19745
19746 /* ArithShift: '<S722>/Shift Arithmetic1' */
19747 L4_MABX_B.ShiftArithmetic1 = L4_MABX_B.DataTypeConversion1_ip << 8;
19748
19749 /* ArithShift: '<S722>/Shift Arithmetic2' */
19750 L4_MABX_B.ShiftArithmetic2 = L4_MABX_B.DataTypeConversion2_dq << 16;
19751
19752 /* S-Function (sfix_bitop): '<S724>/Operator' */
19753 L4_MABX_B.Operator_c = L4_MABX_B.DataTypeConversion_ah |
19754 L4_MABX_B.ShiftArithmetic1 | L4_MABX_B.ShiftArithmetic2;
19755
19756 /* DataTypeConversion: '<S724>/DataType' */
19757 L4_MABX_B.DataType_ft = L4_MABX_B.Operator_c;
19758 }
19759
19760 /* End of Outputs for SubSystem: '<S464>/Decode_TPCM_RTS' */
19761
19762 /* RelationalOperator: '<S584>/Operator' incorporates:
19763 * Constant: '<S439>/Constant'
19764 * Constant: '<S580>/Constant'
19765 */
19766 L4_MABX_B.Operator_id = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant_Value_ev);
19767
19768 /* Outputs for Enabled SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' incorporates:
19769 * EnablePort: '<S581>/Enable'
19770 */
19771 if (L4_MABX_B.Operator_id) {
19772 /* S-Function (rti_commonblock): '<S581>/S-Function1' */
19773 /* This comment workarounds a code generation problem */
19774
19775 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19776 {
19777 UInt32 *CAN_Msg;
19778 static dsfloat time_old = 0.0;
19779
19780 /* Read status and timestamp info (previous message) */
19781 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp !=
19782 time_old) {
19783 /* ... save timestamp info for the calculation of the RX status
19784 during the consecutive sample hit*/
19785 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].
19786 timestamp;
19787
19788 /* ... set the processed flag to one */
19789 L4_MABX_B.SFunction1_o9_mi = 1.0;
19790 L4_MABX_B.SFunction1_o10_fd = (real_T)
19791 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp;
19792 L4_MABX_B.SFunction1_o11_p4 = (real_T)
19793 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].deltatime;
19794 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].data;
19795
19796 /* Decode CAN message */
19797 {
19798 {
19799 rtican_Signal_t CAN_Sgn;
19800
19801 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19802 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19803 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19804 L4_MABX_B.SFunction1_o1_b3 = ((real_T) CAN_Sgn.UnsignedSgn);
19805
19806 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19807 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19808 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19809 L4_MABX_B.SFunction1_o2_br = ((real_T) CAN_Sgn.UnsignedSgn);
19810
19811 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19812 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19813 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19814 L4_MABX_B.SFunction1_o3_ci = ((real_T) CAN_Sgn.UnsignedSgn);
19815
19816 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19817 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19818 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19819 L4_MABX_B.SFunction1_o4_b4 = ((real_T) CAN_Sgn.UnsignedSgn);
19820
19821 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19822 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19823 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19824 L4_MABX_B.SFunction1_o5_ce = ((real_T) CAN_Sgn.UnsignedSgn);
19825
19826 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19827 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19828 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19829 L4_MABX_B.SFunction1_o6_hq = ((real_T) CAN_Sgn.UnsignedSgn);
19830
19831 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19832 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19833 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19834 L4_MABX_B.SFunction1_o7_p = ((real_T) CAN_Sgn.UnsignedSgn);
19835
19836 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19837 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19838 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19839 L4_MABX_B.SFunction1_o8_o = ((real_T) CAN_Sgn.UnsignedSgn);
19840 }
19841 }
19842 } else {
19843 /* set RX status to 0 because no new message has arrived */
19844 L4_MABX_B.SFunction1_o9_mi = 0.0;
19845 }
19846 }
19847 }
19848
19849 /* End of Outputs for SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' */
19850
19851 /* RelationalOperator: '<S585>/Operator' incorporates:
19852 * Constant: '<S439>/Constant'
19853 * Constant: '<S580>/Constant1'
19854 */
19855 L4_MABX_B.Operator_ph = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant1_Value_d);
19856
19857 /* Outputs for Enabled SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' incorporates:
19858 * EnablePort: '<S582>/Enable'
19859 */
19860 if (L4_MABX_B.Operator_ph) {
19861 /* S-Function (rti_commonblock): '<S582>/S-Function1' */
19862 /* This comment workarounds a code generation problem */
19863
19864 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19865 {
19866 UInt32 *CAN_Msg;
19867 static dsfloat time_old = 0.0;
19868
19869 /* Read status and timestamp info (previous message) */
19870 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
19871 time_old) {
19872 /* ... save timestamp info for the calculation of the RX status
19873 during the consecutive sample hit*/
19874 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].
19875 timestamp;
19876
19877 /* ... set the processed flag to one */
19878 L4_MABX_B.SFunction1_o9_e = 1.0;
19879 L4_MABX_B.SFunction1_o10_ni = (real_T)
19880 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp;
19881 L4_MABX_B.SFunction1_o11_pw = (real_T)
19882 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].deltatime;
19883 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].data;
19884
19885 /* Decode CAN message */
19886 {
19887 {
19888 rtican_Signal_t CAN_Sgn;
19889
19890 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19891 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19892 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19893 L4_MABX_B.SFunction1_o1_ki = ((real_T) CAN_Sgn.UnsignedSgn);
19894
19895 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19897 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19898 L4_MABX_B.SFunction1_o2_m5 = ((real_T) CAN_Sgn.UnsignedSgn);
19899
19900 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19902 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19903 L4_MABX_B.SFunction1_o3_ae = ((real_T) CAN_Sgn.UnsignedSgn);
19904
19905 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19907 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19908 L4_MABX_B.SFunction1_o4_pg3 = ((real_T) CAN_Sgn.UnsignedSgn);
19909
19910 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19912 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19913 L4_MABX_B.SFunction1_o5_j = ((real_T) CAN_Sgn.UnsignedSgn);
19914
19915 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19917 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19918 L4_MABX_B.SFunction1_o6_ka = ((real_T) CAN_Sgn.UnsignedSgn);
19919
19920 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19921 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19922 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19923 L4_MABX_B.SFunction1_o7_hq = ((real_T) CAN_Sgn.UnsignedSgn);
19924
19925 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19927 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19928 L4_MABX_B.SFunction1_o8_b5 = ((real_T) CAN_Sgn.UnsignedSgn);
19929 }
19930 }
19931 } else {
19932 /* set RX status to 0 because no new message has arrived */
19933 L4_MABX_B.SFunction1_o9_e = 0.0;
19934 }
19935 }
19936 }
19937
19938 /* End of Outputs for SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' */
19939
19940 /* DataTypeConversion: '<S578>/Data Type Conversion' */
19941 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ki;
19942 if (PositionFinalLimited < 256.0) {
19943 if (PositionFinalLimited >= 0.0) {
19944 starting_index = (uint8_T)PositionFinalLimited;
19945 } else {
19946 starting_index = 0U;
19947 }
19948 } else {
19949 starting_index = MAX_uint8_T;
19950 }
19951
19952 L4_MABX_B.DataTypeConversion_es = starting_index;
19953
19954 /* End of DataTypeConversion: '<S578>/Data Type Conversion' */
19955
19956 /* DataTypeConversion: '<S578>/Data Type Conversion1' */
19957 PositionFinalLimited = L4_MABX_B.SFunction1_o2_m5;
19958 if (PositionFinalLimited < 256.0) {
19959 if (PositionFinalLimited >= 0.0) {
19960 starting_index = (uint8_T)PositionFinalLimited;
19961 } else {
19962 starting_index = 0U;
19963 }
19964 } else {
19965 starting_index = MAX_uint8_T;
19966 }
19967
19968 L4_MABX_B.DataTypeConversion1_cj = starting_index;
19969
19970 /* End of DataTypeConversion: '<S578>/Data Type Conversion1' */
19971
19972 /* DataTypeConversion: '<S578>/Data Type Conversion2' */
19973 PositionFinalLimited = L4_MABX_B.SFunction1_o3_ae;
19974 if (PositionFinalLimited < 256.0) {
19975 if (PositionFinalLimited >= 0.0) {
19976 starting_index = (uint8_T)PositionFinalLimited;
19977 } else {
19978 starting_index = 0U;
19979 }
19980 } else {
19981 starting_index = MAX_uint8_T;
19982 }
19983
19984 L4_MABX_B.DataTypeConversion2_b2 = starting_index;
19985
19986 /* End of DataTypeConversion: '<S578>/Data Type Conversion2' */
19987
19988 /* DataTypeConversion: '<S578>/Data Type Conversion3' */
19989 PositionFinalLimited = L4_MABX_B.SFunction1_o4_pg3;
19990 if (PositionFinalLimited < 256.0) {
19991 if (PositionFinalLimited >= 0.0) {
19992 starting_index = (uint8_T)PositionFinalLimited;
19993 } else {
19994 starting_index = 0U;
19995 }
19996 } else {
19997 starting_index = MAX_uint8_T;
19998 }
19999
20000 L4_MABX_B.DataTypeConversion3_dm = starting_index;
20001
20002 /* End of DataTypeConversion: '<S578>/Data Type Conversion3' */
20003
20004 /* DataTypeConversion: '<S578>/Data Type Conversion4' */
20005 PositionFinalLimited = L4_MABX_B.SFunction1_o5_j;
20006 if (PositionFinalLimited < 256.0) {
20007 if (PositionFinalLimited >= 0.0) {
20008 starting_index = (uint8_T)PositionFinalLimited;
20009 } else {
20010 starting_index = 0U;
20011 }
20012 } else {
20013 starting_index = MAX_uint8_T;
20014 }
20015
20016 L4_MABX_B.DataTypeConversion4_k4 = starting_index;
20017
20018 /* End of DataTypeConversion: '<S578>/Data Type Conversion4' */
20019
20020 /* DataTypeConversion: '<S578>/Data Type Conversion5' */
20021 PositionFinalLimited = L4_MABX_B.SFunction1_o6_ka;
20022 if (PositionFinalLimited < 256.0) {
20023 if (PositionFinalLimited >= 0.0) {
20024 starting_index = (uint8_T)PositionFinalLimited;
20025 } else {
20026 starting_index = 0U;
20027 }
20028 } else {
20029 starting_index = MAX_uint8_T;
20030 }
20031
20032 L4_MABX_B.DataTypeConversion5_gc = starting_index;
20033
20034 /* End of DataTypeConversion: '<S578>/Data Type Conversion5' */
20035
20036 /* DataTypeConversion: '<S578>/Data Type Conversion6' */
20037 PositionFinalLimited = L4_MABX_B.SFunction1_o7_hq;
20038 if (PositionFinalLimited < 256.0) {
20039 if (PositionFinalLimited >= 0.0) {
20040 starting_index = (uint8_T)PositionFinalLimited;
20041 } else {
20042 starting_index = 0U;
20043 }
20044 } else {
20045 starting_index = MAX_uint8_T;
20046 }
20047
20048 L4_MABX_B.DataTypeConversion6_g = starting_index;
20049
20050 /* End of DataTypeConversion: '<S578>/Data Type Conversion6' */
20051
20052 /* DataTypeConversion: '<S578>/Data Type Conversion7' */
20053 PositionFinalLimited = L4_MABX_B.SFunction1_o8_b5;
20054 if (PositionFinalLimited < 256.0) {
20055 if (PositionFinalLimited >= 0.0) {
20056 starting_index = (uint8_T)PositionFinalLimited;
20057 } else {
20058 starting_index = 0U;
20059 }
20060 } else {
20061 starting_index = MAX_uint8_T;
20062 }
20063
20064 L4_MABX_B.DataTypeConversion7_ox = starting_index;
20065
20066 /* End of DataTypeConversion: '<S578>/Data Type Conversion7' */
20067
20068 /* RelationalOperator: '<S589>/Operator' incorporates:
20069 * Constant: '<S439>/Constant'
20070 * Constant: '<S580>/Constant5'
20071 */
20072 L4_MABX_B.Operator_oyk = (PROPB_REAX_CHANNEL_APV ==
20073 L4_MABX_P.Constant5_Value_d);
20074
20075 /* Outputs for Enabled SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' incorporates:
20076 * EnablePort: '<S583>/Enable'
20077 */
20078 if (L4_MABX_B.Operator_oyk) {
20079 /* S-Function (rti_commonblock): '<S583>/S-Function1' */
20080 /* This comment workarounds a code generation problem */
20081
20082 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:486535443 */
20083 {
20084 UInt32 *CAN_Msg;
20085 static dsfloat time_old = 0.0;
20086
20087 /* Read status and timestamp info (previous message) */
20088 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].timestamp !=
20089 time_old) {
20090 /* ... save timestamp info for the calculation of the RX status
20091 during the consecutive sample hit*/
20092 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].
20093 timestamp;
20094
20095 /* ... set the processed flag to one */
20096 L4_MABX_B.SFunction1_o9_kc = 1.0;
20097 L4_MABX_B.SFunction1_o10_l = (real_T)
20098 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].timestamp;
20099 L4_MABX_B.SFunction1_o11_p = (real_T)
20100 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].deltatime;
20101 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF113].data;
20102
20103 /* Decode CAN message */
20104 {
20105 {
20106 rtican_Signal_t CAN_Sgn;
20107
20108 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20109 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20110 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20111 L4_MABX_B.SFunction1_o1_pk = ((real_T) CAN_Sgn.UnsignedSgn);
20112
20113 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20114 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20115 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20116 L4_MABX_B.SFunction1_o2_eq = ((real_T) CAN_Sgn.UnsignedSgn);
20117
20118 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20119 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20120 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20121 L4_MABX_B.SFunction1_o3_hf = ((real_T) CAN_Sgn.UnsignedSgn);
20122
20123 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20124 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20125 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20126 L4_MABX_B.SFunction1_o4_er = ((real_T) CAN_Sgn.UnsignedSgn);
20127
20128 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20129 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20130 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20131 L4_MABX_B.SFunction1_o5_l3 = ((real_T) CAN_Sgn.UnsignedSgn);
20132
20133 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20134 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20135 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20136 L4_MABX_B.SFunction1_o6_i = ((real_T) CAN_Sgn.UnsignedSgn);
20137
20138 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20139 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20140 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20141 L4_MABX_B.SFunction1_o7_ih = ((real_T) CAN_Sgn.UnsignedSgn);
20142
20143 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20144 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20145 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20146 L4_MABX_B.SFunction1_o8_e = ((real_T) CAN_Sgn.UnsignedSgn);
20147 }
20148 }
20149 } else {
20150 /* set RX status to 0 because no new message has arrived */
20151 L4_MABX_B.SFunction1_o9_kc = 0.0;
20152 }
20153 }
20154 }
20155
20156 /* End of Outputs for SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' */
20157
20158 /* DataTypeConversion: '<S579>/Data Type Conversion' */
20159 PositionFinalLimited = L4_MABX_B.SFunction1_o1_pk;
20160 if (PositionFinalLimited < 256.0) {
20161 if (PositionFinalLimited >= 0.0) {
20162 starting_index = (uint8_T)PositionFinalLimited;
20163 } else {
20164 starting_index = 0U;
20165 }
20166 } else {
20167 starting_index = MAX_uint8_T;
20168 }
20169
20170 L4_MABX_B.DataTypeConversion_a3 = starting_index;
20171
20172 /* End of DataTypeConversion: '<S579>/Data Type Conversion' */
20173
20174 /* DataTypeConversion: '<S579>/Data Type Conversion1' */
20175 PositionFinalLimited = L4_MABX_B.SFunction1_o2_eq;
20176 if (PositionFinalLimited < 256.0) {
20177 if (PositionFinalLimited >= 0.0) {
20178 starting_index = (uint8_T)PositionFinalLimited;
20179 } else {
20180 starting_index = 0U;
20181 }
20182 } else {
20183 starting_index = MAX_uint8_T;
20184 }
20185
20186 L4_MABX_B.DataTypeConversion1_g2 = starting_index;
20187
20188 /* End of DataTypeConversion: '<S579>/Data Type Conversion1' */
20189
20190 /* DataTypeConversion: '<S579>/Data Type Conversion2' */
20191 PositionFinalLimited = L4_MABX_B.SFunction1_o3_hf;
20192 if (PositionFinalLimited < 256.0) {
20193 if (PositionFinalLimited >= 0.0) {
20194 starting_index = (uint8_T)PositionFinalLimited;
20195 } else {
20196 starting_index = 0U;
20197 }
20198 } else {
20199 starting_index = MAX_uint8_T;
20200 }
20201
20202 L4_MABX_B.DataTypeConversion2_kr = starting_index;
20203
20204 /* End of DataTypeConversion: '<S579>/Data Type Conversion2' */
20205
20206 /* DataTypeConversion: '<S579>/Data Type Conversion3' */
20207 PositionFinalLimited = L4_MABX_B.SFunction1_o4_er;
20208 if (PositionFinalLimited < 256.0) {
20209 if (PositionFinalLimited >= 0.0) {
20210 starting_index = (uint8_T)PositionFinalLimited;
20211 } else {
20212 starting_index = 0U;
20213 }
20214 } else {
20215 starting_index = MAX_uint8_T;
20216 }
20217
20218 L4_MABX_B.DataTypeConversion3_g = starting_index;
20219
20220 /* End of DataTypeConversion: '<S579>/Data Type Conversion3' */
20221
20222 /* DataTypeConversion: '<S579>/Data Type Conversion4' */
20223 PositionFinalLimited = L4_MABX_B.SFunction1_o5_l3;
20224 if (PositionFinalLimited < 256.0) {
20225 if (PositionFinalLimited >= 0.0) {
20226 starting_index = (uint8_T)PositionFinalLimited;
20227 } else {
20228 starting_index = 0U;
20229 }
20230 } else {
20231 starting_index = MAX_uint8_T;
20232 }
20233
20234 L4_MABX_B.DataTypeConversion4_hh = starting_index;
20235
20236 /* End of DataTypeConversion: '<S579>/Data Type Conversion4' */
20237
20238 /* DataTypeConversion: '<S579>/Data Type Conversion5' */
20239 PositionFinalLimited = L4_MABX_B.SFunction1_o6_i;
20240 if (PositionFinalLimited < 256.0) {
20241 if (PositionFinalLimited >= 0.0) {
20242 starting_index = (uint8_T)PositionFinalLimited;
20243 } else {
20244 starting_index = 0U;
20245 }
20246 } else {
20247 starting_index = MAX_uint8_T;
20248 }
20249
20250 L4_MABX_B.DataTypeConversion5_ce = starting_index;
20251
20252 /* End of DataTypeConversion: '<S579>/Data Type Conversion5' */
20253
20254 /* DataTypeConversion: '<S579>/Data Type Conversion6' */
20255 PositionFinalLimited = L4_MABX_B.SFunction1_o7_ih;
20256 if (PositionFinalLimited < 256.0) {
20257 if (PositionFinalLimited >= 0.0) {
20258 starting_index = (uint8_T)PositionFinalLimited;
20259 } else {
20260 starting_index = 0U;
20261 }
20262 } else {
20263 starting_index = MAX_uint8_T;
20264 }
20265
20266 L4_MABX_B.DataTypeConversion6_n = starting_index;
20267
20268 /* End of DataTypeConversion: '<S579>/Data Type Conversion6' */
20269
20270 /* DataTypeConversion: '<S579>/Data Type Conversion7' */
20271 PositionFinalLimited = L4_MABX_B.SFunction1_o8_e;
20272 if (PositionFinalLimited < 256.0) {
20273 if (PositionFinalLimited >= 0.0) {
20274 starting_index = (uint8_T)PositionFinalLimited;
20275 } else {
20276 starting_index = 0U;
20277 }
20278 } else {
20279 starting_index = MAX_uint8_T;
20280 }
20281
20282 L4_MABX_B.DataTypeConversion7_ln = starting_index;
20283
20284 /* End of DataTypeConversion: '<S579>/Data Type Conversion7' */
20285
20286 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20287 * Constant: '<S439>/Constant'
20288 */
20289 switch (PROPB_REAX_CHANNEL_APV) {
20290 case ENUM_CAN_RX_T_RX_CAN_1:
20291 /* DataTypeConversion: '<S577>/Data Type Conversion' */
20292 PositionFinalLimited = L4_MABX_B.SFunction1_o1_b3;
20293 if (PositionFinalLimited < 256.0) {
20294 if (PositionFinalLimited >= 0.0) {
20295 starting_index = (uint8_T)PositionFinalLimited;
20296 } else {
20297 starting_index = 0U;
20298 }
20299 } else {
20300 starting_index = MAX_uint8_T;
20301 }
20302
20303 L4_MABX_B.DataTypeConversion_na = starting_index;
20304
20305 /* End of DataTypeConversion: '<S577>/Data Type Conversion' */
20306
20307 /* DataTypeConversion: '<S577>/Data Type Conversion1' */
20308 PositionFinalLimited = L4_MABX_B.SFunction1_o2_br;
20309 if (PositionFinalLimited < 256.0) {
20310 if (PositionFinalLimited >= 0.0) {
20311 starting_index = (uint8_T)PositionFinalLimited;
20312 } else {
20313 starting_index = 0U;
20314 }
20315 } else {
20316 starting_index = MAX_uint8_T;
20317 }
20318
20319 L4_MABX_B.DataTypeConversion1_cq = starting_index;
20320
20321 /* End of DataTypeConversion: '<S577>/Data Type Conversion1' */
20322
20323 /* DataTypeConversion: '<S577>/Data Type Conversion2' */
20324 PositionFinalLimited = L4_MABX_B.SFunction1_o3_ci;
20325 if (PositionFinalLimited < 256.0) {
20326 if (PositionFinalLimited >= 0.0) {
20327 starting_index = (uint8_T)PositionFinalLimited;
20328 } else {
20329 starting_index = 0U;
20330 }
20331 } else {
20332 starting_index = MAX_uint8_T;
20333 }
20334
20335 L4_MABX_B.DataTypeConversion2_dk = starting_index;
20336
20337 /* End of DataTypeConversion: '<S577>/Data Type Conversion2' */
20338
20339 /* DataTypeConversion: '<S577>/Data Type Conversion3' */
20340 PositionFinalLimited = L4_MABX_B.SFunction1_o4_b4;
20341 if (PositionFinalLimited < 256.0) {
20342 if (PositionFinalLimited >= 0.0) {
20343 starting_index = (uint8_T)PositionFinalLimited;
20344 } else {
20345 starting_index = 0U;
20346 }
20347 } else {
20348 starting_index = MAX_uint8_T;
20349 }
20350
20351 L4_MABX_B.DataTypeConversion3_ef = starting_index;
20352
20353 /* End of DataTypeConversion: '<S577>/Data Type Conversion3' */
20354
20355 /* DataTypeConversion: '<S577>/Data Type Conversion4' */
20356 PositionFinalLimited = L4_MABX_B.SFunction1_o5_ce;
20357 if (PositionFinalLimited < 256.0) {
20358 if (PositionFinalLimited >= 0.0) {
20359 starting_index = (uint8_T)PositionFinalLimited;
20360 } else {
20361 starting_index = 0U;
20362 }
20363 } else {
20364 starting_index = MAX_uint8_T;
20365 }
20366
20367 L4_MABX_B.DataTypeConversion4_l0 = starting_index;
20368
20369 /* End of DataTypeConversion: '<S577>/Data Type Conversion4' */
20370
20371 /* DataTypeConversion: '<S577>/Data Type Conversion5' */
20372 PositionFinalLimited = L4_MABX_B.SFunction1_o6_hq;
20373 if (PositionFinalLimited < 256.0) {
20374 if (PositionFinalLimited >= 0.0) {
20375 starting_index = (uint8_T)PositionFinalLimited;
20376 } else {
20377 starting_index = 0U;
20378 }
20379 } else {
20380 starting_index = MAX_uint8_T;
20381 }
20382
20383 L4_MABX_B.DataTypeConversion5_os = starting_index;
20384
20385 /* End of DataTypeConversion: '<S577>/Data Type Conversion5' */
20386
20387 /* DataTypeConversion: '<S577>/Data Type Conversion6' */
20388 PositionFinalLimited = L4_MABX_B.SFunction1_o7_p;
20389 if (PositionFinalLimited < 256.0) {
20390 if (PositionFinalLimited >= 0.0) {
20391 starting_index = (uint8_T)PositionFinalLimited;
20392 } else {
20393 starting_index = 0U;
20394 }
20395 } else {
20396 starting_index = MAX_uint8_T;
20397 }
20398
20399 L4_MABX_B.DataTypeConversion6_lu = starting_index;
20400
20401 /* End of DataTypeConversion: '<S577>/Data Type Conversion6' */
20402
20403 /* DataTypeConversion: '<S577>/Data Type Conversion7' */
20404 PositionFinalLimited = L4_MABX_B.SFunction1_o8_o;
20405 if (PositionFinalLimited < 256.0) {
20406 if (PositionFinalLimited >= 0.0) {
20407 starting_index = (uint8_T)PositionFinalLimited;
20408 } else {
20409 starting_index = 0U;
20410 }
20411 } else {
20412 starting_index = MAX_uint8_T;
20413 }
20414
20415 L4_MABX_B.DataTypeConversion7_la = starting_index;
20416
20417 /* End of DataTypeConversion: '<S577>/Data Type Conversion7' */
20418 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_na;
20419 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_cq;
20420 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_dk;
20421 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_ef;
20422 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_l0;
20423 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_os;
20424 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_lu;
20425 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_la;
20426 break;
20427
20428 case ENUM_CAN_RX_T_RX_CAN_2:
20429 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_es;
20430 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_cj;
20431 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_b2;
20432 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_dm;
20433 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_k4;
20434 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_gc;
20435 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_g;
20436 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_ox;
20437 break;
20438
20439 case ENUM_CAN_RX_T_RX_CAN_3:
20440 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_es;
20441 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_cj;
20442 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_b2;
20443 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_dm;
20444 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_k4;
20445 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_gc;
20446 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_g;
20447 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_ox;
20448 break;
20449
20450 case ENUM_CAN_RX_T_RX_CAN_4:
20451 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_es;
20452 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_cj;
20453 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_b2;
20454 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_dm;
20455 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_k4;
20456 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_gc;
20457 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_g;
20458 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_ox;
20459 break;
20460
20461 case ENUM_CAN_RX_T_RX_CAN_5:
20462 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_es;
20463 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_cj;
20464 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_b2;
20465 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_dm;
20466 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_k4;
20467 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_gc;
20468 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_g;
20469 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_ox;
20470 break;
20471
20472 case ENUM_CAN_RX_T_RX_CAN_6:
20473 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_a3;
20474 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_g2;
20475 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_kr;
20476 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_g;
20477 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_hh;
20478 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_ce;
20479 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_n;
20480 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_ln;
20481 break;
20482
20483 default:
20484 L4_MABX_B.RawData_h[0] = L4_MABX_B.DataTypeConversion_a3;
20485 L4_MABX_B.RawData_h[1] = L4_MABX_B.DataTypeConversion1_g2;
20486 L4_MABX_B.RawData_h[2] = L4_MABX_B.DataTypeConversion2_kr;
20487 L4_MABX_B.RawData_h[3] = L4_MABX_B.DataTypeConversion3_g;
20488 L4_MABX_B.RawData_h[4] = L4_MABX_B.DataTypeConversion4_hh;
20489 L4_MABX_B.RawData_h[5] = L4_MABX_B.DataTypeConversion5_ce;
20490 L4_MABX_B.RawData_h[6] = L4_MABX_B.DataTypeConversion6_n;
20491 L4_MABX_B.RawData_h[7] = L4_MABX_B.DataTypeConversion7_ln;
20492 break;
20493 }
20494
20495 /* S-Function (sfix_bitop): '<S667>/Operator' */
20496 L4_MABX_B.Operator_fw = (uint8_T)(L4_MABX_B.RawData_h[0] &
20497 L4_MABX_P.Operator_BitMask_af);
20498
20499 /* DataTypeConversion: '<S667>/DataType' */
20500 L4_MABX_B.DataType_oop = L4_MABX_B.Operator_fw;
20501
20502 /* DataTypeConversion: '<S414>/Data Type Conversion' */
20503 REAX_Current_Mode = L4_MABX_B.DataType_oop;
20504
20505 /* S-Function (sfix_bitop): '<S666>/Operator' */
20506 L4_MABX_B.Operator_dz = (uint8_T)(L4_MABX_B.RawData_h[0] &
20507 L4_MABX_P.Operator_BitMask_mx);
20508
20509 /* DataTypeConversion: '<S666>/DataType' */
20510 L4_MABX_B.DataType_iuj = L4_MABX_B.Operator_dz;
20511
20512 /* ArithShift: '<S661>/Shift_Arithmetic ' */
20513 L4_MABX_B.PropB_REAX_3_ReqOperatingMode = (uint8_T)((uint32_T)
20514 L4_MABX_B.DataType_iuj >> 4);
20515
20516 /* DataTypeConversion: '<S414>/Data Type Conversion1' */
20517 REAX_Req_Mode = L4_MABX_B.PropB_REAX_3_ReqOperatingMode;
20518
20519 /* DataTypeConversion: '<S414>/Data Type Conversion2' */
20520 REAX_Status = L4_MABX_B.RawData_h[1];
20521
20522 /* DataTypeConversion: '<S663>/Data Type Conversion1' */
20523 L4_MABX_B.DataTypeConversion1_fu = L4_MABX_B.RawData_h[2];
20524
20525 /* DataTypeConversion: '<S663>/Data Type Conversion2' */
20526 L4_MABX_B.DataTypeConversion2_j = L4_MABX_B.RawData_h[3];
20527
20528 /* ArithShift: '<S663>/Shift_Arithmetic 1' */
20529 L4_MABX_B.Shift_Arithmetic1_m0 = (uint16_T)(L4_MABX_B.DataTypeConversion2_j <<
20530 8);
20531
20532 /* S-Function (sfix_bitop): '<S668>/Operator' */
20533 L4_MABX_B.Operator_fm = (uint16_T)(L4_MABX_B.DataTypeConversion1_fu |
20534 L4_MABX_B.Shift_Arithmetic1_m0);
20535
20536 /* DataTypeConversion: '<S668>/DataType' */
20537 L4_MABX_B.DataType_ex = L4_MABX_B.Operator_fm;
20538
20539 /* DataTypeConversion: '<S663>/Data Type Conversion3' */
20540 L4_MABX_B.DataTypeConversion3_oi = (int16_T)L4_MABX_B.DataType_ex;
20541
20542 /* DataTypeConversion: '<S663>/Data Type Conversion4' */
20543 L4_MABX_B.DataTypeConversion4_i = L4_MABX_B.DataTypeConversion3_oi;
20544
20545 /* Product: '<S663>/Product' incorporates:
20546 * Constant: '<S663>/Constant'
20547 */
20548 L4_MABX_B.PropB_REAX_3_HandwheelTorque = (real32_T)
20549 (L4_MABX_B.DataTypeConversion4_i * L4_MABX_P.Constant_Value_du);
20550
20551 /* DataTypeConversion: '<S414>/Data Type Conversion3' */
20552 REAX_Handwheel_Torque = L4_MABX_B.PropB_REAX_3_HandwheelTorque;
20553
20554 /* DataTypeConversion: '<S664>/Data Type Conversion4' */
20555 L4_MABX_B.DataTypeConversion4_l = L4_MABX_B.RawData_h[4];
20556
20557 /* DataTypeConversion: '<S664>/Data Type Conversion5' */
20558 L4_MABX_B.DataTypeConversion5_ax = L4_MABX_B.RawData_h[5];
20559
20560 /* ArithShift: '<S664>/Shift_Arithmetic 2' */
20561 L4_MABX_B.Shift_Arithmetic2_e = (uint16_T)(L4_MABX_B.DataTypeConversion5_ax <<
20562 8);
20563
20564 /* S-Function (sfix_bitop): '<S669>/Operator' */
20565 L4_MABX_B.Operator_a = (uint16_T)(L4_MABX_B.DataTypeConversion4_l |
20566 L4_MABX_B.Shift_Arithmetic2_e);
20567
20568 /* DataTypeConversion: '<S669>/DataType' */
20569 L4_MABX_B.DataType_ev = L4_MABX_B.Operator_a;
20570
20571 /* DataTypeConversion: '<S664>/Data Type Conversion6' */
20572 L4_MABX_B.DataTypeConversion6_m = (int16_T)L4_MABX_B.DataType_ev;
20573
20574 /* DataTypeConversion: '<S664>/Data Type Conversion1' */
20575 L4_MABX_B.DataTypeConversion1_f = L4_MABX_B.DataTypeConversion6_m;
20576
20577 /* Product: '<S664>/Product1' incorporates:
20578 * Constant: '<S664>/Constant1'
20579 */
20580 L4_MABX_B.PropB_REAX_3_HandwheelVelocity = (real32_T)
20581 (L4_MABX_B.DataTypeConversion1_f * L4_MABX_P.Constant1_Value_pk);
20582
20583 /* DataTypeConversion: '<S414>/Data Type Conversion4' */
20584 REAX_Handwheel_Velocity = L4_MABX_B.PropB_REAX_3_HandwheelVelocity;
20585
20586 /* DataTypeConversion: '<S665>/Data Type Conversion7' */
20587 L4_MABX_B.DataTypeConversion7_lw = L4_MABX_B.RawData_h[6];
20588
20589 /* DataTypeConversion: '<S665>/Data Type Conversion8' */
20590 L4_MABX_B.DataTypeConversion8_p = L4_MABX_B.RawData_h[7];
20591
20592 /* ArithShift: '<S665>/Shift_Arithmetic 3' */
20593 L4_MABX_B.Shift_Arithmetic3_b = (uint16_T)(L4_MABX_B.DataTypeConversion8_p <<
20594 8);
20595
20596 /* S-Function (sfix_bitop): '<S670>/Operator' */
20597 L4_MABX_B.Operator_i5 = (uint16_T)(L4_MABX_B.DataTypeConversion7_lw |
20598 L4_MABX_B.Shift_Arithmetic3_b);
20599
20600 /* DataTypeConversion: '<S670>/DataType' */
20601 L4_MABX_B.DataType_n5 = L4_MABX_B.Operator_i5;
20602
20603 /* DataTypeConversion: '<S665>/Data Type Conversion9' */
20604 L4_MABX_B.DataTypeConversion9_l = (int16_T)L4_MABX_B.DataType_n5;
20605
20606 /* DataTypeConversion: '<S665>/Data Type Conversion1' */
20607 L4_MABX_B.DataTypeConversion1_j = L4_MABX_B.DataTypeConversion9_l;
20608
20609 /* Product: '<S665>/Product2' incorporates:
20610 * Constant: '<S665>/Constant2'
20611 */
20612 L4_MABX_B.PropB_REAX_3_PullCompensation = (real32_T)
20613 (L4_MABX_B.DataTypeConversion1_j * L4_MABX_P.Constant2_Value_i);
20614
20615 /* DataTypeConversion: '<S414>/Data Type Conversion5' */
20616 REAX_Pull_Compensation = L4_MABX_B.PropB_REAX_3_PullCompensation;
20617
20618 /* DataTypeConversion: '<S578>/Data Type Conversion8' */
20619 L4_MABX_B.RX_status_pq = (L4_MABX_B.SFunction1_o9_e != 0.0);
20620
20621 /* DataTypeConversion: '<S579>/Data Type Conversion8' */
20622 L4_MABX_B.RX_status_b = (L4_MABX_B.SFunction1_o9_kc != 0.0);
20623
20624 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20625 * Constant: '<S439>/Constant'
20626 */
20627 switch (PROPB_REAX_CHANNEL_APV) {
20628 case ENUM_CAN_RX_T_RX_CAN_1:
20629 /* DataTypeConversion: '<S577>/Data Type Conversion8' */
20630 L4_MABX_B.RX_status_ep = (L4_MABX_B.SFunction1_o9_mi != 0.0);
20631 L4_MABX_B.RX_status_iak = L4_MABX_B.RX_status_ep;
20632 break;
20633
20634 case ENUM_CAN_RX_T_RX_CAN_2:
20635 L4_MABX_B.RX_status_iak = L4_MABX_B.RX_status_pq;
20636 break;
20637
20638 case ENUM_CAN_RX_T_RX_CAN_3:
20639 L4_MABX_B.RX_status_iak = L4_MABX_B.RX_status_pq;
20640 break;
20641
20642 case ENUM_CAN_RX_T_RX_CAN_4:
20643 L4_MABX_B.RX_status_iak = L4_MABX_B.RX_status_pq;
20644 break;
20645
20646 case ENUM_CAN_RX_T_RX_CAN_5:
20647 L4_MABX_B.RX_status_iak = L4_MABX_B.RX_status_pq;
20648 break;
20649
20650 case ENUM_CAN_RX_T_RX_CAN_6:
20651 L4_MABX_B.RX_status_iak = L4_MABX_B.RX_status_b;
20652 break;
20653
20654 default:
20655 L4_MABX_B.RX_status_iak = L4_MABX_B.RX_status_b;
20656 break;
20657 }
20658
20659 /* DataTypeConversion: '<S578>/Data Type Conversion9' */
20660 L4_MABX_B.RX_time_o41 = L4_MABX_B.SFunction1_o10_ni;
20661
20662 /* DataTypeConversion: '<S579>/Data Type Conversion9' */
20663 L4_MABX_B.RX_time_ek = L4_MABX_B.SFunction1_o10_l;
20664
20665 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20666 * Constant: '<S439>/Constant'
20667 */
20668 switch (PROPB_REAX_CHANNEL_APV) {
20669 case ENUM_CAN_RX_T_RX_CAN_1:
20670 /* DataTypeConversion: '<S577>/Data Type Conversion9' */
20671 L4_MABX_B.RX_time_he = L4_MABX_B.SFunction1_o10_fd;
20672 L4_MABX_B.RX_time_dv = L4_MABX_B.RX_time_he;
20673 break;
20674
20675 case ENUM_CAN_RX_T_RX_CAN_2:
20676 L4_MABX_B.RX_time_dv = L4_MABX_B.RX_time_o41;
20677 break;
20678
20679 case ENUM_CAN_RX_T_RX_CAN_3:
20680 L4_MABX_B.RX_time_dv = L4_MABX_B.RX_time_o41;
20681 break;
20682
20683 case ENUM_CAN_RX_T_RX_CAN_4:
20684 L4_MABX_B.RX_time_dv = L4_MABX_B.RX_time_o41;
20685 break;
20686
20687 case ENUM_CAN_RX_T_RX_CAN_5:
20688 L4_MABX_B.RX_time_dv = L4_MABX_B.RX_time_o41;
20689 break;
20690
20691 case ENUM_CAN_RX_T_RX_CAN_6:
20692 L4_MABX_B.RX_time_dv = L4_MABX_B.RX_time_ek;
20693 break;
20694
20695 default:
20696 L4_MABX_B.RX_time_dv = L4_MABX_B.RX_time_ek;
20697 break;
20698 }
20699
20700 /* DataTypeConversion: '<S578>/Data Type Conversion10' */
20701 L4_MABX_B.RX_delta_time_gj = L4_MABX_B.SFunction1_o11_pw;
20702
20703 /* DataTypeConversion: '<S579>/Data Type Conversion10' */
20704 L4_MABX_B.RX_delta_time_ig = L4_MABX_B.SFunction1_o11_p;
20705
20706 /* MultiPortSwitch: '<S439>/Multiport_Switch' incorporates:
20707 * Constant: '<S439>/Constant'
20708 */
20709 switch (PROPB_REAX_CHANNEL_APV) {
20710 case ENUM_CAN_RX_T_RX_CAN_1:
20711 /* DataTypeConversion: '<S577>/Data Type Conversion10' */
20712 L4_MABX_B.RX_delta_time_m = L4_MABX_B.SFunction1_o11_p4;
20713 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.RX_delta_time_m;
20714 break;
20715
20716 case ENUM_CAN_RX_T_RX_CAN_2:
20717 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.RX_delta_time_gj;
20718 break;
20719
20720 case ENUM_CAN_RX_T_RX_CAN_3:
20721 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.RX_delta_time_gj;
20722 break;
20723
20724 case ENUM_CAN_RX_T_RX_CAN_4:
20725 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.RX_delta_time_gj;
20726 break;
20727
20728 case ENUM_CAN_RX_T_RX_CAN_5:
20729 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.RX_delta_time_gj;
20730 break;
20731
20732 case ENUM_CAN_RX_T_RX_CAN_6:
20733 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.RX_delta_time_ig;
20734 break;
20735
20736 default:
20737 L4_MABX_B.RX_delta_time_fn = L4_MABX_B.RX_delta_time_ig;
20738 break;
20739 }
20740
20741 /* RelationalOperator: '<S586>/Operator' incorporates:
20742 * Constant: '<S439>/Constant'
20743 * Constant: '<S580>/Constant2'
20744 */
20745 L4_MABX_B.Operator_mc = (PROPB_REAX_CHANNEL_APV ==
20746 L4_MABX_P.Constant2_Value_hx);
20747
20748 /* RelationalOperator: '<S587>/Operator' incorporates:
20749 * Constant: '<S439>/Constant'
20750 * Constant: '<S580>/Constant3'
20751 */
20752 L4_MABX_B.Operator_dn = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant3_Value_c);
20753
20754 /* RelationalOperator: '<S588>/Operator' incorporates:
20755 * Constant: '<S439>/Constant'
20756 * Constant: '<S580>/Constant4'
20757 */
20758 L4_MABX_B.Operator_eq = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant4_Value_h);
20759
20760 /* RelationalOperator: '<S597>/Operator' incorporates:
20761 * Constant: '<S440>/Constant'
20762 * Constant: '<S593>/Constant'
20763 */
20764 L4_MABX_B.Operator_lyg = (PROPB_REAX_CHANNEL_APV ==
20765 L4_MABX_P.Constant_Value_js);
20766
20767 /* Outputs for Enabled SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' incorporates:
20768 * EnablePort: '<S594>/Enable'
20769 */
20770 if (L4_MABX_B.Operator_lyg) {
20771 /* S-Function (rti_commonblock): '<S594>/S-Function1' */
20772 /* This comment workarounds a code generation problem */
20773
20774 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20775 {
20776 UInt32 *CAN_Msg;
20777 static dsfloat time_old = 0.0;
20778
20779 /* Read status and timestamp info (previous message) */
20780 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp !=
20781 time_old) {
20782 /* ... save timestamp info for the calculation of the RX status
20783 during the consecutive sample hit*/
20784 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].
20785 timestamp;
20786
20787 /* ... set the processed flag to one */
20788 L4_MABX_B.SFunction1_o9_p = 1.0;
20789 L4_MABX_B.SFunction1_o10_m = (real_T)
20790 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp;
20791 L4_MABX_B.SFunction1_o11_d = (real_T)
20792 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].deltatime;
20793 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].data;
20794
20795 /* Decode CAN message */
20796 {
20797 {
20798 rtican_Signal_t CAN_Sgn;
20799
20800 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20801 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20802 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20803 L4_MABX_B.SFunction1_o1_mpc = ((real_T) CAN_Sgn.UnsignedSgn);
20804
20805 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20806 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20807 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20808 L4_MABX_B.SFunction1_o2_m1 = ((real_T) CAN_Sgn.UnsignedSgn);
20809
20810 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20811 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20812 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20813 L4_MABX_B.SFunction1_o3_hi = ((real_T) CAN_Sgn.UnsignedSgn);
20814
20815 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20816 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20817 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20818 L4_MABX_B.SFunction1_o4_fl = ((real_T) CAN_Sgn.UnsignedSgn);
20819
20820 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20821 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20822 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20823 L4_MABX_B.SFunction1_o5_p = ((real_T) CAN_Sgn.UnsignedSgn);
20824
20825 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20826 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20827 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20828 L4_MABX_B.SFunction1_o6_b3 = ((real_T) CAN_Sgn.UnsignedSgn);
20829
20830 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20831 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20832 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20833 L4_MABX_B.SFunction1_o7_oa = ((real_T) CAN_Sgn.UnsignedSgn);
20834
20835 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20836 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20837 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20838 L4_MABX_B.SFunction1_o8_iy = ((real_T) CAN_Sgn.UnsignedSgn);
20839 }
20840 }
20841 } else {
20842 /* set RX status to 0 because no new message has arrived */
20843 L4_MABX_B.SFunction1_o9_p = 0.0;
20844 }
20845 }
20846 }
20847
20848 /* End of Outputs for SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
20849
20850 /* RelationalOperator: '<S598>/Operator' incorporates:
20851 * Constant: '<S440>/Constant'
20852 * Constant: '<S593>/Constant1'
20853 */
20854 L4_MABX_B.Operator_o00 = (PROPB_REAX_CHANNEL_APV ==
20855 L4_MABX_P.Constant1_Value_f4);
20856
20857 /* Outputs for Enabled SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' incorporates:
20858 * EnablePort: '<S595>/Enable'
20859 */
20860 if (L4_MABX_B.Operator_o00) {
20861 /* S-Function (rti_commonblock): '<S595>/S-Function1' */
20862 /* This comment workarounds a code generation problem */
20863
20864 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20865 {
20866 UInt32 *CAN_Msg;
20867 static dsfloat time_old = 0.0;
20868
20869 /* Read status and timestamp info (previous message) */
20870 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
20871 time_old) {
20872 /* ... save timestamp info for the calculation of the RX status
20873 during the consecutive sample hit*/
20874 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].
20875 timestamp;
20876
20877 /* ... set the processed flag to one */
20878 L4_MABX_B.SFunction1_o9_fr = 1.0;
20879 L4_MABX_B.SFunction1_o10_a = (real_T)
20880 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp;
20881 L4_MABX_B.SFunction1_o11_n = (real_T)
20882 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].deltatime;
20883 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].data;
20884
20885 /* Decode CAN message */
20886 {
20887 {
20888 rtican_Signal_t CAN_Sgn;
20889
20890 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20891 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20892 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20893 L4_MABX_B.SFunction1_o1_ot = ((real_T) CAN_Sgn.UnsignedSgn);
20894
20895 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20897 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20898 L4_MABX_B.SFunction1_o2_go = ((real_T) CAN_Sgn.UnsignedSgn);
20899
20900 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20901 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20902 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20903 L4_MABX_B.SFunction1_o3_ly = ((real_T) CAN_Sgn.UnsignedSgn);
20904
20905 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20907 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20908 L4_MABX_B.SFunction1_o4_cg = ((real_T) CAN_Sgn.UnsignedSgn);
20909
20910 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20912 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20913 L4_MABX_B.SFunction1_o5_mi = ((real_T) CAN_Sgn.UnsignedSgn);
20914
20915 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20917 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20918 L4_MABX_B.SFunction1_o6_h = ((real_T) CAN_Sgn.UnsignedSgn);
20919
20920 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20921 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20922 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20923 L4_MABX_B.SFunction1_o7_h = ((real_T) CAN_Sgn.UnsignedSgn);
20924
20925 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20926 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20927 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20928 L4_MABX_B.SFunction1_o8_n0 = ((real_T) CAN_Sgn.UnsignedSgn);
20929 }
20930 }
20931 } else {
20932 /* set RX status to 0 because no new message has arrived */
20933 L4_MABX_B.SFunction1_o9_fr = 0.0;
20934 }
20935 }
20936 }
20937
20938 /* End of Outputs for SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
20939
20940 /* RelationalOperator: '<S602>/Operator' incorporates:
20941 * Constant: '<S440>/Constant'
20942 * Constant: '<S593>/Constant5'
20943 */
20944 L4_MABX_B.Operator_pd = (PROPB_REAX_CHANNEL_APV ==
20945 L4_MABX_P.Constant5_Value_cd);
20946
20947 /* Outputs for Enabled SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' incorporates:
20948 * EnablePort: '<S596>/Enable'
20949 */
20950 if (L4_MABX_B.Operator_pd) {
20951 /* S-Function (rti_commonblock): '<S596>/S-Function1' */
20952 /* This comment workarounds a code generation problem */
20953
20954 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:486536979 */
20955 {
20956 UInt32 *CAN_Msg;
20957 static dsfloat time_old = 0.0;
20958
20959 /* Read status and timestamp info (previous message) */
20960 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].timestamp !=
20961 time_old) {
20962 /* ... save timestamp info for the calculation of the RX status
20963 during the consecutive sample hit*/
20964 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].
20965 timestamp;
20966
20967 /* ... set the processed flag to one */
20968 L4_MABX_B.SFunction1_o9_k1 = 1.0;
20969 L4_MABX_B.SFunction1_o10_f5 = (real_T)
20970 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].timestamp;
20971 L4_MABX_B.SFunction1_o11_m = (real_T)
20972 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].deltatime;
20973 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x1CFFF713].data;
20974
20975 /* Decode CAN message */
20976 {
20977 {
20978 rtican_Signal_t CAN_Sgn;
20979
20980 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20981 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20982 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20983 L4_MABX_B.SFunction1_o1_ix = ((real_T) CAN_Sgn.UnsignedSgn);
20984
20985 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20986 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20987 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20988 L4_MABX_B.SFunction1_o2_aa = ((real_T) CAN_Sgn.UnsignedSgn);
20989
20990 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20991 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20992 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20993 L4_MABX_B.SFunction1_o3_hs = ((real_T) CAN_Sgn.UnsignedSgn);
20994
20995 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20996 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20997 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20998 L4_MABX_B.SFunction1_o4_ku = ((real_T) CAN_Sgn.UnsignedSgn);
20999
21000 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
21001 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
21002 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21003 L4_MABX_B.SFunction1_o5_m = ((real_T) CAN_Sgn.UnsignedSgn);
21004
21005 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
21006 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
21007 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21008 L4_MABX_B.SFunction1_o6_pk = ((real_T) CAN_Sgn.UnsignedSgn);
21009
21010 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
21011 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
21012 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21013 L4_MABX_B.SFunction1_o7_f = ((real_T) CAN_Sgn.UnsignedSgn);
21014
21015 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
21016 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
21017 CAN_Sgn.UnsignedSgn &= 0x000000FF;
21018 L4_MABX_B.SFunction1_o8_nf = ((real_T) CAN_Sgn.UnsignedSgn);
21019 }
21020 }
21021 } else {
21022 /* set RX status to 0 because no new message has arrived */
21023 L4_MABX_B.SFunction1_o9_k1 = 0.0;
21024 }
21025 }
21026 }
21027
21028 /* End of Outputs for SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' */
21029
21030 /* DataTypeConversion: '<S592>/Data Type Conversion' */
21031 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ix;
21032 if (PositionFinalLimited < 256.0) {
21033 if (PositionFinalLimited >= 0.0) {
21034 starting_index = (uint8_T)PositionFinalLimited;
21035 } else {
21036 starting_index = 0U;
21037 }
21038 } else {
21039 starting_index = MAX_uint8_T;
21040 }
21041
21042 L4_MABX_B.DataTypeConversion_ffi = starting_index;
21043
21044 /* End of DataTypeConversion: '<S592>/Data Type Conversion' */
21045
21046 /* DataTypeConversion: '<S592>/Data Type Conversion1' */
21047 PositionFinalLimited = L4_MABX_B.SFunction1_o2_aa;
21048 if (PositionFinalLimited < 256.0) {
21049 if (PositionFinalLimited >= 0.0) {
21050 starting_index = (uint8_T)PositionFinalLimited;
21051 } else {
21052 starting_index = 0U;
21053 }
21054 } else {
21055 starting_index = MAX_uint8_T;
21056 }
21057
21058 L4_MABX_B.DataTypeConversion1_gf = starting_index;
21059
21060 /* End of DataTypeConversion: '<S592>/Data Type Conversion1' */
21061
21062 /* DataTypeConversion: '<S592>/Data Type Conversion2' */
21063 PositionFinalLimited = L4_MABX_B.SFunction1_o3_hs;
21064 if (PositionFinalLimited < 256.0) {
21065 if (PositionFinalLimited >= 0.0) {
21066 starting_index = (uint8_T)PositionFinalLimited;
21067 } else {
21068 starting_index = 0U;
21069 }
21070 } else {
21071 starting_index = MAX_uint8_T;
21072 }
21073
21074 L4_MABX_B.DataTypeConversion2_au = starting_index;
21075
21076 /* End of DataTypeConversion: '<S592>/Data Type Conversion2' */
21077
21078 /* DataTypeConversion: '<S592>/Data Type Conversion3' */
21079 PositionFinalLimited = L4_MABX_B.SFunction1_o4_ku;
21080 if (PositionFinalLimited < 256.0) {
21081 if (PositionFinalLimited >= 0.0) {
21082 starting_index = (uint8_T)PositionFinalLimited;
21083 } else {
21084 starting_index = 0U;
21085 }
21086 } else {
21087 starting_index = MAX_uint8_T;
21088 }
21089
21090 L4_MABX_B.DataTypeConversion3_hq = starting_index;
21091
21092 /* End of DataTypeConversion: '<S592>/Data Type Conversion3' */
21093
21094 /* DataTypeConversion: '<S592>/Data Type Conversion4' */
21095 PositionFinalLimited = L4_MABX_B.SFunction1_o5_m;
21096 if (PositionFinalLimited < 256.0) {
21097 if (PositionFinalLimited >= 0.0) {
21098 starting_index = (uint8_T)PositionFinalLimited;
21099 } else {
21100 starting_index = 0U;
21101 }
21102 } else {
21103 starting_index = MAX_uint8_T;
21104 }
21105
21106 L4_MABX_B.DataTypeConversion4_nr = starting_index;
21107
21108 /* End of DataTypeConversion: '<S592>/Data Type Conversion4' */
21109
21110 /* DataTypeConversion: '<S592>/Data Type Conversion5' */
21111 PositionFinalLimited = L4_MABX_B.SFunction1_o6_pk;
21112 if (PositionFinalLimited < 256.0) {
21113 if (PositionFinalLimited >= 0.0) {
21114 starting_index = (uint8_T)PositionFinalLimited;
21115 } else {
21116 starting_index = 0U;
21117 }
21118 } else {
21119 starting_index = MAX_uint8_T;
21120 }
21121
21122 L4_MABX_B.DataTypeConversion5_jv = starting_index;
21123
21124 /* End of DataTypeConversion: '<S592>/Data Type Conversion5' */
21125
21126 /* DataTypeConversion: '<S592>/Data Type Conversion6' */
21127 PositionFinalLimited = L4_MABX_B.SFunction1_o7_f;
21128 if (PositionFinalLimited < 256.0) {
21129 if (PositionFinalLimited >= 0.0) {
21130 starting_index = (uint8_T)PositionFinalLimited;
21131 } else {
21132 starting_index = 0U;
21133 }
21134 } else {
21135 starting_index = MAX_uint8_T;
21136 }
21137
21138 L4_MABX_B.DataTypeConversion6_gw = starting_index;
21139
21140 /* End of DataTypeConversion: '<S592>/Data Type Conversion6' */
21141
21142 /* DataTypeConversion: '<S592>/Data Type Conversion7' */
21143 PositionFinalLimited = L4_MABX_B.SFunction1_o8_nf;
21144 if (PositionFinalLimited < 256.0) {
21145 if (PositionFinalLimited >= 0.0) {
21146 starting_index = (uint8_T)PositionFinalLimited;
21147 } else {
21148 starting_index = 0U;
21149 }
21150 } else {
21151 starting_index = MAX_uint8_T;
21152 }
21153
21154 L4_MABX_B.DataTypeConversion7_ja = starting_index;
21155
21156 /* End of DataTypeConversion: '<S592>/Data Type Conversion7' */
21157
21158 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21159 * Constant: '<S440>/Constant'
21160 */
21161 switch (PROPB_REAX_CHANNEL_APV) {
21162 case ENUM_CAN_RX_T_RX_CAN_1:
21163 /* DataTypeConversion: '<S590>/Data Type Conversion' */
21164 PositionFinalLimited = L4_MABX_B.SFunction1_o1_mpc;
21165 if (PositionFinalLimited < 256.0) {
21166 if (PositionFinalLimited >= 0.0) {
21167 starting_index = (uint8_T)PositionFinalLimited;
21168 } else {
21169 starting_index = 0U;
21170 }
21171 } else {
21172 starting_index = MAX_uint8_T;
21173 }
21174
21175 L4_MABX_B.DataTypeConversion_bi = starting_index;
21176
21177 /* End of DataTypeConversion: '<S590>/Data Type Conversion' */
21178
21179 /* DataTypeConversion: '<S590>/Data Type Conversion1' */
21180 PositionFinalLimited = L4_MABX_B.SFunction1_o2_m1;
21181 if (PositionFinalLimited < 256.0) {
21182 if (PositionFinalLimited >= 0.0) {
21183 starting_index = (uint8_T)PositionFinalLimited;
21184 } else {
21185 starting_index = 0U;
21186 }
21187 } else {
21188 starting_index = MAX_uint8_T;
21189 }
21190
21191 L4_MABX_B.DataTypeConversion1_l1 = starting_index;
21192
21193 /* End of DataTypeConversion: '<S590>/Data Type Conversion1' */
21194
21195 /* DataTypeConversion: '<S590>/Data Type Conversion2' */
21196 PositionFinalLimited = L4_MABX_B.SFunction1_o3_hi;
21197 if (PositionFinalLimited < 256.0) {
21198 if (PositionFinalLimited >= 0.0) {
21199 starting_index = (uint8_T)PositionFinalLimited;
21200 } else {
21201 starting_index = 0U;
21202 }
21203 } else {
21204 starting_index = MAX_uint8_T;
21205 }
21206
21207 L4_MABX_B.DataTypeConversion2_gk = starting_index;
21208
21209 /* End of DataTypeConversion: '<S590>/Data Type Conversion2' */
21210
21211 /* DataTypeConversion: '<S590>/Data Type Conversion3' */
21212 PositionFinalLimited = L4_MABX_B.SFunction1_o4_fl;
21213 if (PositionFinalLimited < 256.0) {
21214 if (PositionFinalLimited >= 0.0) {
21215 starting_index = (uint8_T)PositionFinalLimited;
21216 } else {
21217 starting_index = 0U;
21218 }
21219 } else {
21220 starting_index = MAX_uint8_T;
21221 }
21222
21223 L4_MABX_B.DataTypeConversion3_ck = starting_index;
21224
21225 /* End of DataTypeConversion: '<S590>/Data Type Conversion3' */
21226
21227 /* DataTypeConversion: '<S590>/Data Type Conversion4' */
21228 PositionFinalLimited = L4_MABX_B.SFunction1_o5_p;
21229 if (PositionFinalLimited < 256.0) {
21230 if (PositionFinalLimited >= 0.0) {
21231 starting_index = (uint8_T)PositionFinalLimited;
21232 } else {
21233 starting_index = 0U;
21234 }
21235 } else {
21236 starting_index = MAX_uint8_T;
21237 }
21238
21239 L4_MABX_B.DataTypeConversion4_on = starting_index;
21240
21241 /* End of DataTypeConversion: '<S590>/Data Type Conversion4' */
21242
21243 /* DataTypeConversion: '<S590>/Data Type Conversion5' */
21244 PositionFinalLimited = L4_MABX_B.SFunction1_o6_b3;
21245 if (PositionFinalLimited < 256.0) {
21246 if (PositionFinalLimited >= 0.0) {
21247 starting_index = (uint8_T)PositionFinalLimited;
21248 } else {
21249 starting_index = 0U;
21250 }
21251 } else {
21252 starting_index = MAX_uint8_T;
21253 }
21254
21255 L4_MABX_B.DataTypeConversion5_h3 = starting_index;
21256
21257 /* End of DataTypeConversion: '<S590>/Data Type Conversion5' */
21258
21259 /* DataTypeConversion: '<S590>/Data Type Conversion6' */
21260 PositionFinalLimited = L4_MABX_B.SFunction1_o7_oa;
21261 if (PositionFinalLimited < 256.0) {
21262 if (PositionFinalLimited >= 0.0) {
21263 starting_index = (uint8_T)PositionFinalLimited;
21264 } else {
21265 starting_index = 0U;
21266 }
21267 } else {
21268 starting_index = MAX_uint8_T;
21269 }
21270
21271 L4_MABX_B.DataTypeConversion6_mk = starting_index;
21272
21273 /* End of DataTypeConversion: '<S590>/Data Type Conversion6' */
21274
21275 /* DataTypeConversion: '<S590>/Data Type Conversion7' */
21276 PositionFinalLimited = L4_MABX_B.SFunction1_o8_iy;
21277 if (PositionFinalLimited < 256.0) {
21278 if (PositionFinalLimited >= 0.0) {
21279 starting_index = (uint8_T)PositionFinalLimited;
21280 } else {
21281 starting_index = 0U;
21282 }
21283 } else {
21284 starting_index = MAX_uint8_T;
21285 }
21286
21287 L4_MABX_B.DataTypeConversion7_h = starting_index;
21288
21289 /* End of DataTypeConversion: '<S590>/Data Type Conversion7' */
21290 L4_MABX_B.RawData_o[0] = L4_MABX_B.DataTypeConversion_bi;
21291 L4_MABX_B.RawData_o[1] = L4_MABX_B.DataTypeConversion1_l1;
21292 L4_MABX_B.RawData_o[2] = L4_MABX_B.DataTypeConversion2_gk;
21293 L4_MABX_B.RawData_o[3] = L4_MABX_B.DataTypeConversion3_ck;
21294 L4_MABX_B.RawData_o[4] = L4_MABX_B.DataTypeConversion4_on;
21295 L4_MABX_B.RawData_o[5] = L4_MABX_B.DataTypeConversion5_h3;
21296 L4_MABX_B.RawData_o[6] = L4_MABX_B.DataTypeConversion6_mk;
21297 L4_MABX_B.RawData_o[7] = L4_MABX_B.DataTypeConversion7_h;
21298 break;
21299
21300 case ENUM_CAN_RX_T_RX_CAN_2:
21301 /* DataTypeConversion: '<S591>/Data Type Conversion' */
21302 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ot;
21303 if (PositionFinalLimited < 256.0) {
21304 if (PositionFinalLimited >= 0.0) {
21305 starting_index = (uint8_T)PositionFinalLimited;
21306 } else {
21307 starting_index = 0U;
21308 }
21309 } else {
21310 starting_index = MAX_uint8_T;
21311 }
21312
21313 L4_MABX_B.DataTypeConversion_c3 = starting_index;
21314
21315 /* End of DataTypeConversion: '<S591>/Data Type Conversion' */
21316
21317 /* DataTypeConversion: '<S591>/Data Type Conversion1' */
21318 PositionFinalLimited = L4_MABX_B.SFunction1_o2_go;
21319 if (PositionFinalLimited < 256.0) {
21320 if (PositionFinalLimited >= 0.0) {
21321 starting_index = (uint8_T)PositionFinalLimited;
21322 } else {
21323 starting_index = 0U;
21324 }
21325 } else {
21326 starting_index = MAX_uint8_T;
21327 }
21328
21329 L4_MABX_B.DataTypeConversion1_ld = starting_index;
21330
21331 /* End of DataTypeConversion: '<S591>/Data Type Conversion1' */
21332
21333 /* DataTypeConversion: '<S591>/Data Type Conversion2' */
21334 PositionFinalLimited = L4_MABX_B.SFunction1_o3_ly;
21335 if (PositionFinalLimited < 256.0) {
21336 if (PositionFinalLimited >= 0.0) {
21337 starting_index = (uint8_T)PositionFinalLimited;
21338 } else {
21339 starting_index = 0U;
21340 }
21341 } else {
21342 starting_index = MAX_uint8_T;
21343 }
21344
21345 L4_MABX_B.DataTypeConversion2_ds = starting_index;
21346
21347 /* End of DataTypeConversion: '<S591>/Data Type Conversion2' */
21348
21349 /* DataTypeConversion: '<S591>/Data Type Conversion3' */
21350 PositionFinalLimited = L4_MABX_B.SFunction1_o4_cg;
21351 if (PositionFinalLimited < 256.0) {
21352 if (PositionFinalLimited >= 0.0) {
21353 starting_index = (uint8_T)PositionFinalLimited;
21354 } else {
21355 starting_index = 0U;
21356 }
21357 } else {
21358 starting_index = MAX_uint8_T;
21359 }
21360
21361 L4_MABX_B.DataTypeConversion3_ga = starting_index;
21362
21363 /* End of DataTypeConversion: '<S591>/Data Type Conversion3' */
21364
21365 /* DataTypeConversion: '<S591>/Data Type Conversion4' */
21366 PositionFinalLimited = L4_MABX_B.SFunction1_o5_mi;
21367 if (PositionFinalLimited < 256.0) {
21368 if (PositionFinalLimited >= 0.0) {
21369 starting_index = (uint8_T)PositionFinalLimited;
21370 } else {
21371 starting_index = 0U;
21372 }
21373 } else {
21374 starting_index = MAX_uint8_T;
21375 }
21376
21377 L4_MABX_B.DataTypeConversion4_hz = starting_index;
21378
21379 /* End of DataTypeConversion: '<S591>/Data Type Conversion4' */
21380
21381 /* DataTypeConversion: '<S591>/Data Type Conversion5' */
21382 PositionFinalLimited = L4_MABX_B.SFunction1_o6_h;
21383 if (PositionFinalLimited < 256.0) {
21384 if (PositionFinalLimited >= 0.0) {
21385 starting_index = (uint8_T)PositionFinalLimited;
21386 } else {
21387 starting_index = 0U;
21388 }
21389 } else {
21390 starting_index = MAX_uint8_T;
21391 }
21392
21393 L4_MABX_B.DataTypeConversion5_jd = starting_index;
21394
21395 /* End of DataTypeConversion: '<S591>/Data Type Conversion5' */
21396
21397 /* DataTypeConversion: '<S591>/Data Type Conversion6' */
21398 PositionFinalLimited = L4_MABX_B.SFunction1_o7_h;
21399 if (PositionFinalLimited < 256.0) {
21400 if (PositionFinalLimited >= 0.0) {
21401 starting_index = (uint8_T)PositionFinalLimited;
21402 } else {
21403 starting_index = 0U;
21404 }
21405 } else {
21406 starting_index = MAX_uint8_T;
21407 }
21408
21409 L4_MABX_B.DataTypeConversion6_ll = starting_index;
21410
21411 /* End of DataTypeConversion: '<S591>/Data Type Conversion6' */
21412
21413 /* DataTypeConversion: '<S591>/Data Type Conversion7' */
21414 PositionFinalLimited = L4_MABX_B.SFunction1_o8_n0;
21415 if (PositionFinalLimited < 256.0) {
21416 if (PositionFinalLimited >= 0.0) {
21417 starting_index = (uint8_T)PositionFinalLimited;
21418 } else {
21419 starting_index = 0U;
21420 }
21421 } else {
21422 starting_index = MAX_uint8_T;
21423 }
21424
21425 L4_MABX_B.DataTypeConversion7_ol = starting_index;
21426
21427 /* End of DataTypeConversion: '<S591>/Data Type Conversion7' */
21428 L4_MABX_B.RawData_o[0] = L4_MABX_B.DataTypeConversion_c3;
21429 L4_MABX_B.RawData_o[1] = L4_MABX_B.DataTypeConversion1_ld;
21430 L4_MABX_B.RawData_o[2] = L4_MABX_B.DataTypeConversion2_ds;
21431 L4_MABX_B.RawData_o[3] = L4_MABX_B.DataTypeConversion3_ga;
21432 L4_MABX_B.RawData_o[4] = L4_MABX_B.DataTypeConversion4_hz;
21433 L4_MABX_B.RawData_o[5] = L4_MABX_B.DataTypeConversion5_jd;
21434 L4_MABX_B.RawData_o[6] = L4_MABX_B.DataTypeConversion6_ll;
21435 L4_MABX_B.RawData_o[7] = L4_MABX_B.DataTypeConversion7_ol;
21436 break;
21437
21438 case ENUM_CAN_RX_T_RX_CAN_3:
21439 L4_MABX_B.RawData_o[0] = L4_MABX_B.DataTypeConversion_ffi;
21440 L4_MABX_B.RawData_o[1] = L4_MABX_B.DataTypeConversion1_gf;
21441 L4_MABX_B.RawData_o[2] = L4_MABX_B.DataTypeConversion2_au;
21442 L4_MABX_B.RawData_o[3] = L4_MABX_B.DataTypeConversion3_hq;
21443 L4_MABX_B.RawData_o[4] = L4_MABX_B.DataTypeConversion4_nr;
21444 L4_MABX_B.RawData_o[5] = L4_MABX_B.DataTypeConversion5_jv;
21445 L4_MABX_B.RawData_o[6] = L4_MABX_B.DataTypeConversion6_gw;
21446 L4_MABX_B.RawData_o[7] = L4_MABX_B.DataTypeConversion7_ja;
21447 break;
21448
21449 case ENUM_CAN_RX_T_RX_CAN_4:
21450 L4_MABX_B.RawData_o[0] = L4_MABX_B.DataTypeConversion_ffi;
21451 L4_MABX_B.RawData_o[1] = L4_MABX_B.DataTypeConversion1_gf;
21452 L4_MABX_B.RawData_o[2] = L4_MABX_B.DataTypeConversion2_au;
21453 L4_MABX_B.RawData_o[3] = L4_MABX_B.DataTypeConversion3_hq;
21454 L4_MABX_B.RawData_o[4] = L4_MABX_B.DataTypeConversion4_nr;
21455 L4_MABX_B.RawData_o[5] = L4_MABX_B.DataTypeConversion5_jv;
21456 L4_MABX_B.RawData_o[6] = L4_MABX_B.DataTypeConversion6_gw;
21457 L4_MABX_B.RawData_o[7] = L4_MABX_B.DataTypeConversion7_ja;
21458 break;
21459
21460 case ENUM_CAN_RX_T_RX_CAN_5:
21461 L4_MABX_B.RawData_o[0] = L4_MABX_B.DataTypeConversion_ffi;
21462 L4_MABX_B.RawData_o[1] = L4_MABX_B.DataTypeConversion1_gf;
21463 L4_MABX_B.RawData_o[2] = L4_MABX_B.DataTypeConversion2_au;
21464 L4_MABX_B.RawData_o[3] = L4_MABX_B.DataTypeConversion3_hq;
21465 L4_MABX_B.RawData_o[4] = L4_MABX_B.DataTypeConversion4_nr;
21466 L4_MABX_B.RawData_o[5] = L4_MABX_B.DataTypeConversion5_jv;
21467 L4_MABX_B.RawData_o[6] = L4_MABX_B.DataTypeConversion6_gw;
21468 L4_MABX_B.RawData_o[7] = L4_MABX_B.DataTypeConversion7_ja;
21469 break;
21470
21471 case ENUM_CAN_RX_T_RX_CAN_6:
21472 L4_MABX_B.RawData_o[0] = L4_MABX_B.DataTypeConversion_ffi;
21473 L4_MABX_B.RawData_o[1] = L4_MABX_B.DataTypeConversion1_gf;
21474 L4_MABX_B.RawData_o[2] = L4_MABX_B.DataTypeConversion2_au;
21475 L4_MABX_B.RawData_o[3] = L4_MABX_B.DataTypeConversion3_hq;
21476 L4_MABX_B.RawData_o[4] = L4_MABX_B.DataTypeConversion4_nr;
21477 L4_MABX_B.RawData_o[5] = L4_MABX_B.DataTypeConversion5_jv;
21478 L4_MABX_B.RawData_o[6] = L4_MABX_B.DataTypeConversion6_gw;
21479 L4_MABX_B.RawData_o[7] = L4_MABX_B.DataTypeConversion7_ja;
21480 break;
21481
21482 default:
21483 L4_MABX_B.RawData_o[0] = L4_MABX_B.DataTypeConversion_ffi;
21484 L4_MABX_B.RawData_o[1] = L4_MABX_B.DataTypeConversion1_gf;
21485 L4_MABX_B.RawData_o[2] = L4_MABX_B.DataTypeConversion2_au;
21486 L4_MABX_B.RawData_o[3] = L4_MABX_B.DataTypeConversion3_hq;
21487 L4_MABX_B.RawData_o[4] = L4_MABX_B.DataTypeConversion4_nr;
21488 L4_MABX_B.RawData_o[5] = L4_MABX_B.DataTypeConversion5_jv;
21489 L4_MABX_B.RawData_o[6] = L4_MABX_B.DataTypeConversion6_gw;
21490 L4_MABX_B.RawData_o[7] = L4_MABX_B.DataTypeConversion7_ja;
21491 break;
21492 }
21493
21494 /* S-Function (sfix_bitop): '<S679>/Operator' */
21495 L4_MABX_B.Operator_hj = (uint8_T)(L4_MABX_B.RawData_o[0] &
21496 L4_MABX_P.Operator_BitMask_e0);
21497
21498 /* DataTypeConversion: '<S679>/DataType' */
21499 L4_MABX_B.DataType_al = L4_MABX_B.Operator_hj;
21500
21501 /* ArithShift: '<S672>/Shift_Arithmetic ' */
21502 L4_MABX_B.Shift_Arithmetic_j = (uint8_T)((uint32_T)L4_MABX_B.DataType_al >> 1);
21503
21504 /* DataTypeConversion: '<S672>/Data Type Conversion' */
21505 L4_MABX_B.PropB_REAX_4_PositionIndexValid = (L4_MABX_B.Shift_Arithmetic_j != 0);
21506
21507 /* DataTypeConversion: '<S415>/Data Type Conversion' */
21508 L4_MABX_B.DataTypeConversion_f5 = L4_MABX_B.PropB_REAX_4_PositionIndexValid;
21509
21510 /* S-Function (sfix_bitop): '<S678>/Operator' */
21511 L4_MABX_B.Operator_p1v = (uint8_T)(L4_MABX_B.RawData_o[0] &
21512 L4_MABX_P.Operator_BitMask_iw);
21513
21514 /* DataTypeConversion: '<S678>/DataType' */
21515 L4_MABX_B.DataType_f2 = (L4_MABX_B.Operator_p1v != 0);
21516
21517 /* DataTypeConversion: '<S415>/Data Type Conversion1' */
21518 L4_MABX_B.DataTypeConversion1_o0 = L4_MABX_B.DataType_f2;
21519
21520 /* S-Function (sfix_bitop): '<S680>/Operator' */
21521 L4_MABX_B.Operator_a2 = (uint8_T)(L4_MABX_B.RawData_o[0] &
21522 L4_MABX_P.Operator_BitMask_jf);
21523
21524 /* DataTypeConversion: '<S680>/DataType' */
21525 L4_MABX_B.DataType_me = L4_MABX_B.Operator_a2;
21526
21527 /* ArithShift: '<S672>/Shift_Arithmetic 1' */
21528 L4_MABX_B.Shift_Arithmetic1_p = (uint8_T)((uint32_T)L4_MABX_B.DataType_me >> 2);
21529
21530 /* DataTypeConversion: '<S672>/Data Type Conversion1' */
21531 L4_MABX_B.PropB_REAX_4_DriverControlledEf = (L4_MABX_B.Shift_Arithmetic1_p !=
21532 0);
21533
21534 /* DataTypeConversion: '<S415>/Data Type Conversion2' */
21535 L4_MABX_B.DataTypeConversion2_hn = L4_MABX_B.PropB_REAX_4_DriverControlledEf;
21536
21537 /* SignalConversion: '<S673>/SignalConversion' */
21538 L4_MABX_B.PropB_REAX_4_ControlOperatingMo = L4_MABX_B.RawData_o[1];
21539
21540 /* DataTypeConversion: '<S415>/Data Type Conversion3' */
21541 L4_MABX_B.DataTypeConversion3_f = L4_MABX_B.PropB_REAX_4_ControlOperatingMo;
21542
21543 /* SignalConversion: '<S674>/SignalConversion' */
21544 L4_MABX_B.PropB_REAX_4_SystemMode = L4_MABX_B.RawData_o[2];
21545
21546 /* DataTypeConversion: '<S415>/Data Type Conversion4' */
21547 L4_MABX_B.DataTypeConversion4_e = L4_MABX_B.PropB_REAX_4_SystemMode;
21548
21549 /* DataTypeConversion: '<S675>/Data Type Conversion4' */
21550 L4_MABX_B.DataTypeConversion4_hy = (int8_T)L4_MABX_B.RawData_o[4];
21551
21552 /* DataTypeConversion: '<S675>/Data Type Conversion5' */
21553 L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu = L4_MABX_B.DataTypeConversion4_hy;
21554
21555 /* DataTypeConversion: '<S415>/Data Type Conversion5' */
21556 L4_MABX_B.DataTypeConversion5_c = L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu;
21557
21558 /* DataTypeConversion: '<S676>/Data Type Conversion6' */
21559 L4_MABX_B.DataTypeConversion6_po = L4_MABX_B.RawData_o[5];
21560
21561 /* DataTypeConversion: '<S676>/Data Type Conversion7' */
21562 L4_MABX_B.DataTypeConversion7_a = L4_MABX_B.RawData_o[6];
21563
21564 /* ArithShift: '<S676>/Shift_Arithmetic 2' */
21565 L4_MABX_B.Shift_Arithmetic2_af = (uint16_T)(L4_MABX_B.DataTypeConversion7_a <<
21566 8);
21567
21568 /* S-Function (sfix_bitop): '<S681>/Operator' */
21569 L4_MABX_B.Operator_de = (uint16_T)(L4_MABX_B.DataTypeConversion6_po |
21570 L4_MABX_B.Shift_Arithmetic2_af);
21571
21572 /* DataTypeConversion: '<S681>/DataType' */
21573 L4_MABX_B.DataType_gv = L4_MABX_B.Operator_de;
21574
21575 /* DataTypeConversion: '<S676>/Data Type Conversion8' */
21576 L4_MABX_B.DataTypeConversion8_a = (int16_T)L4_MABX_B.DataType_gv;
21577
21578 /* DataTypeConversion: '<S676>/Data Type Conversion9' */
21579 L4_MABX_B.PropB_REAX_4_AbsSteeringAngle = L4_MABX_B.DataTypeConversion8_a;
21580
21581 /* DataTypeConversion: '<S415>/Data Type Conversion6' */
21582 L4_MABX_B.DataTypeConversion6_l = L4_MABX_B.PropB_REAX_4_AbsSteeringAngle;
21583
21584 /* DataTypeConversion: '<S677>/Data Type Conversion10' */
21585 L4_MABX_B.DataTypeConversion10_i = (int8_T)L4_MABX_B.RawData_o[7];
21586
21587 /* DataTypeConversion: '<S677>/Data Type Conversion11' */
21588 L4_MABX_B.PropB_REAX_4_PercMotorTorque = L4_MABX_B.DataTypeConversion10_i;
21589
21590 /* DataTypeConversion: '<S415>/Data Type Conversion7' */
21591 L4_MABX_B.DataTypeConversion7_f = L4_MABX_B.PropB_REAX_4_PercMotorTorque;
21592
21593 /* DataTypeConversion: '<S592>/Data Type Conversion8' */
21594 L4_MABX_B.RX_status_ds = (L4_MABX_B.SFunction1_o9_k1 != 0.0);
21595
21596 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21597 * Constant: '<S440>/Constant'
21598 */
21599 switch (PROPB_REAX_CHANNEL_APV) {
21600 case ENUM_CAN_RX_T_RX_CAN_1:
21601 /* DataTypeConversion: '<S590>/Data Type Conversion8' */
21602 L4_MABX_B.RX_status_ou = (L4_MABX_B.SFunction1_o9_p != 0.0);
21603 L4_MABX_B.RX_status_dc = L4_MABX_B.RX_status_ou;
21604 break;
21605
21606 case ENUM_CAN_RX_T_RX_CAN_2:
21607 /* DataTypeConversion: '<S591>/Data Type Conversion8' */
21608 L4_MABX_B.RX_status_io = (L4_MABX_B.SFunction1_o9_fr != 0.0);
21609 L4_MABX_B.RX_status_dc = L4_MABX_B.RX_status_io;
21610 break;
21611
21612 case ENUM_CAN_RX_T_RX_CAN_3:
21613 L4_MABX_B.RX_status_dc = L4_MABX_B.RX_status_ds;
21614 break;
21615
21616 case ENUM_CAN_RX_T_RX_CAN_4:
21617 L4_MABX_B.RX_status_dc = L4_MABX_B.RX_status_ds;
21618 break;
21619
21620 case ENUM_CAN_RX_T_RX_CAN_5:
21621 L4_MABX_B.RX_status_dc = L4_MABX_B.RX_status_ds;
21622 break;
21623
21624 case ENUM_CAN_RX_T_RX_CAN_6:
21625 L4_MABX_B.RX_status_dc = L4_MABX_B.RX_status_ds;
21626 break;
21627
21628 default:
21629 L4_MABX_B.RX_status_dc = L4_MABX_B.RX_status_ds;
21630 break;
21631 }
21632
21633 /* DataTypeConversion: '<S592>/Data Type Conversion9' */
21634 L4_MABX_B.RX_time_hv = L4_MABX_B.SFunction1_o10_f5;
21635
21636 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21637 * Constant: '<S440>/Constant'
21638 */
21639 switch (PROPB_REAX_CHANNEL_APV) {
21640 case ENUM_CAN_RX_T_RX_CAN_1:
21641 /* DataTypeConversion: '<S590>/Data Type Conversion9' */
21642 L4_MABX_B.RX_time_nk = L4_MABX_B.SFunction1_o10_m;
21643 L4_MABX_B.RX_time_ij = L4_MABX_B.RX_time_nk;
21644 break;
21645
21646 case ENUM_CAN_RX_T_RX_CAN_2:
21647 /* DataTypeConversion: '<S591>/Data Type Conversion9' */
21648 L4_MABX_B.RX_time_nj = L4_MABX_B.SFunction1_o10_a;
21649 L4_MABX_B.RX_time_ij = L4_MABX_B.RX_time_nj;
21650 break;
21651
21652 case ENUM_CAN_RX_T_RX_CAN_3:
21653 L4_MABX_B.RX_time_ij = L4_MABX_B.RX_time_hv;
21654 break;
21655
21656 case ENUM_CAN_RX_T_RX_CAN_4:
21657 L4_MABX_B.RX_time_ij = L4_MABX_B.RX_time_hv;
21658 break;
21659
21660 case ENUM_CAN_RX_T_RX_CAN_5:
21661 L4_MABX_B.RX_time_ij = L4_MABX_B.RX_time_hv;
21662 break;
21663
21664 case ENUM_CAN_RX_T_RX_CAN_6:
21665 L4_MABX_B.RX_time_ij = L4_MABX_B.RX_time_hv;
21666 break;
21667
21668 default:
21669 L4_MABX_B.RX_time_ij = L4_MABX_B.RX_time_hv;
21670 break;
21671 }
21672
21673 /* DataTypeConversion: '<S592>/Data Type Conversion10' */
21674 L4_MABX_B.RX_delta_time_bv = L4_MABX_B.SFunction1_o11_m;
21675
21676 /* MultiPortSwitch: '<S440>/Multiport_Switch' incorporates:
21677 * Constant: '<S440>/Constant'
21678 */
21679 switch (PROPB_REAX_CHANNEL_APV) {
21680 case ENUM_CAN_RX_T_RX_CAN_1:
21681 /* DataTypeConversion: '<S590>/Data Type Conversion10' */
21682 L4_MABX_B.RX_delta_time_d2 = L4_MABX_B.SFunction1_o11_d;
21683 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.RX_delta_time_d2;
21684 break;
21685
21686 case ENUM_CAN_RX_T_RX_CAN_2:
21687 /* DataTypeConversion: '<S591>/Data Type Conversion10' */
21688 L4_MABX_B.RX_delta_time_kz = L4_MABX_B.SFunction1_o11_n;
21689 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.RX_delta_time_kz;
21690 break;
21691
21692 case ENUM_CAN_RX_T_RX_CAN_3:
21693 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.RX_delta_time_bv;
21694 break;
21695
21696 case ENUM_CAN_RX_T_RX_CAN_4:
21697 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.RX_delta_time_bv;
21698 break;
21699
21700 case ENUM_CAN_RX_T_RX_CAN_5:
21701 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.RX_delta_time_bv;
21702 break;
21703
21704 case ENUM_CAN_RX_T_RX_CAN_6:
21705 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.RX_delta_time_bv;
21706 break;
21707
21708 default:
21709 L4_MABX_B.RX_delta_time_e2 = L4_MABX_B.RX_delta_time_bv;
21710 break;
21711 }
21712
21713 /* RelationalOperator: '<S599>/Operator' incorporates:
21714 * Constant: '<S440>/Constant'
21715 * Constant: '<S593>/Constant2'
21716 */
21717 L4_MABX_B.Operator_et = (PROPB_REAX_CHANNEL_APV ==
21718 L4_MABX_P.Constant2_Value_i2);
21719
21720 /* RelationalOperator: '<S600>/Operator' incorporates:
21721 * Constant: '<S440>/Constant'
21722 * Constant: '<S593>/Constant3'
21723 */
21724 L4_MABX_B.Operator_ax = (PROPB_REAX_CHANNEL_APV ==
21725 L4_MABX_P.Constant3_Value_gk);
21726
21727 /* RelationalOperator: '<S601>/Operator' incorporates:
21728 * Constant: '<S440>/Constant'
21729 * Constant: '<S593>/Constant4'
21730 */
21731 L4_MABX_B.Operator_po = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant4_Value_d);
21732
21733 /* S-Function (rti_commonblock): '<S455>/S-Function1' */
21734 /* This comment workarounds a code generation problem */
21735
21736 /* S-Function (rti_commonblock): '<S456>/S-Function1' */
21737 /* This comment workarounds a code generation problem */
21738
21739 /* S-Function (rti_commonblock): '<S457>/S-Function1' */
21740 /* This comment workarounds a code generation problem */
21741
21742 /* S-Function (rti_commonblock): '<S458>/S-Function1' */
21743 /* This comment workarounds a code generation problem */
21744
21745 /* S-Function (rti_commonblock): '<S459>/S-Function1' */
21746 /* This comment workarounds a code generation problem */
21747
21748 /* S-Function (rti_commonblock): '<S460>/S-Function1' */
21749 /* This comment workarounds a code generation problem */
21750
21751 /* S-Function (rti_commonblock): '<S730>/S-Function1' */
21752 /* This comment workarounds a code generation problem */
21753
21754 /* DataTypeConversion: '<S411>/StartPBActive' */
21755 L4_MABX_B.StartPBActive = L4_MABX_B.SFunction1_h;
21756
21757 /* Logic: '<S411>/Logical Operator' */
21758 EngagePB = !L4_MABX_B.StartPBActive;
21759
21760 /* Assertion: '<S758>/Assertion' */
21761 utAssert(L4_MABX_B.conjunction_d);
21762
21763 /* Assertion: '<S766>/Assertion' */
21764 utAssert(L4_MABX_B.conjunction);
21765
21766 /* Assertion: '<S774>/Assertion' */
21767 utAssert(L4_MABX_B.conjunction_m);
21768
21769 /* Assertion: '<S782>/Assertion' */
21770 utAssert(L4_MABX_B.conjunction_o);
21771
21772 /* Assertion: '<S790>/Assertion' */
21773 utAssert(L4_MABX_B.conjunction_dt);
21774
21775 /* RelationalOperator: '<S757>/Relational Operator9' incorporates:
21776 * Constant: '<S738>/PWMSynchFaultLimMin'
21777 */
21778 L4_MABX_B.F_Fault_Soft_n = (L4_MABX_B.If_Then_Else_i.Switch !=
21779 L4_MABX_P.PWMSynchFaultLimMin_Value);
21780
21781 /* Gain: '<S411>/ShifterControlFreq' */
21782 L4_MABX_B.ShiftControlFreq = L4_MABX_P.ShifterControlFreq_Gain *
21783 L4_MABX_B.SFunction1_o1_c;
21784
21785 /* S-Function (rti_commonblock): '<S725>/S-Function1' */
21786 /* This comment workarounds a code generation problem */
21787 {
21788 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21789 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21790 ADC_TP4_CH2,
21791 (dsfloat *)&L4_MABX_B.SFunction1_a);
21792 }
21793
21794 /* Gain: '<S411>/ShifterControlDC2' */
21795 L4_MABX_B.ShifterControlDC2 = L4_MABX_P.ShifterControlDC2_Gain *
21796 L4_MABX_B.SFunction1_a;
21797
21798 /* S-Function (rti_commonblock): '<S726>/S-Function1' */
21799 /* This comment workarounds a code generation problem */
21800 {
21801 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21802 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21803 ADC_TP4_CH1,
21804 (dsfloat *)&L4_MABX_B.SFunction1_k);
21805 }
21806
21807 /* Gain: '<S411>/ShifterControlDC1' */
21808 L4_MABX_B.ShifterControlDC1 = L4_MABX_P.ShifterControlDC1_Gain *
21809 L4_MABX_B.SFunction1_k;
21810
21811 /* S-Function (rti_commonblock): '<S8>/S-Function1' */
21812 /* This comment workarounds a code generation problem */
21813
21814 /* S-Function (rti_commonblock): '<S9>/S-Function1' */
21815 /* This comment workarounds a code generation problem */
21816
21817 /* UnitDelay: '<S10>/Unit_Delay' */
21818 L4_MABX_B.Unit_Delay_jj = L4_MABX_DW.Unit_Delay_DSTATE_do;
21819
21820 /* Outputs for Enabled SubSystem: '<S10>/EnabledSubsystem' incorporates:
21821 * EnablePort: '<S1066>/Enable'
21822 */
21823 if (L4_MABX_B.Unit_Delay_jj) {
21824 /* Constant: '<S1066>/Constant' */
21825 memcpy(&GLB_SWVERSION_CPV_[0], &L4_MABX_P.GLB_SWVERSION_CPV[0], 100U *
21826 sizeof(uint8_T));
21827 }
21828
21829 /* End of Outputs for SubSystem: '<S10>/EnabledSubsystem' */
21830 /* user code (Output function Trailer for TID0) */
21831
21832 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
21833 /* EventChannel: 0 */
21834 if (tid == 0) {
21835 DSXCP_service(0);
21836 }
21837
21838 /* If subsystem generates rate grouping Output functions,
21839 * when tid is used in Output function for one rate,
21840 * all Output functions include tid as a local variable.
21841 * As result, some Output functions may have unused tid.
21842 */
21843 UNUSED_PARAMETER(tid);
21844}
21845
21846/* Model update function for TID0 */
21847void L4_MABX_update0(void) /* Sample time: [0.01s, 0.0s] */
21848{
21849 int32_T i;
21850
21851 /* Update for UnitDelay: '<S771>/FixPt Unit Delay2' incorporates:
21852 * Constant: '<S771>/FixPt Constant'
21853 */
21854 L4_MABX_DW.FixPtUnitDelay2_DSTATE = L4_MABX_P.FixPtConstant_Value_kf;
21855
21856 /* Update for UnitDelay: '<S771>/FixPt Unit Delay1' */
21857 L4_MABX_DW.FixPtUnitDelay1_DSTATE = L4_MABX_B.If_Then_Else_j.Switch;
21858
21859 /* Update for UnitDelay: '<S763>/FixPt Unit Delay2' incorporates:
21860 * Constant: '<S763>/FixPt Constant'
21861 */
21862 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c = L4_MABX_P.FixPtConstant_Value_du;
21863
21864 /* Update for UnitDelay: '<S763>/FixPt Unit Delay1' */
21865 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o = L4_MABX_B.If_Then_Else_fj.Switch;
21866
21867 /* Update for UnitDelay: '<S787>/FixPt Unit Delay2' incorporates:
21868 * Constant: '<S787>/FixPt Constant'
21869 */
21870 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d = L4_MABX_P.FixPtConstant_Value_bo;
21871
21872 /* Update for UnitDelay: '<S787>/FixPt Unit Delay1' */
21873 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c = L4_MABX_B.If_Then_Else_a.Switch;
21874
21875 /* Update for UnitDelay: '<S779>/FixPt Unit Delay2' incorporates:
21876 * Constant: '<S779>/FixPt Constant'
21877 */
21878 L4_MABX_DW.FixPtUnitDelay2_DSTATE_h = L4_MABX_P.FixPtConstant_Value_f3;
21879
21880 /* Update for UnitDelay: '<S779>/FixPt Unit Delay1' */
21881 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p = L4_MABX_B.If_Then_Else_k.Switch;
21882
21883 /* Update for UnitDelay: '<S741>/Unit_Delay' incorporates:
21884 * Constant: '<S741>/Constant'
21885 */
21886 L4_MABX_DW.Unit_Delay_DSTATE_mb = L4_MABX_P.Constant_Value_er;
21887
21888 /* Update for UnitDelay: '<S808>/Unit_Delay1' incorporates:
21889 * Constant: '<S808>/Constant'
21890 */
21891 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Constant_Value_ng;
21892
21893 /* Update for UnitDelay: '<S808>/Unit_Delay2' */
21894 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_B.If_Then_Else_c.Switch;
21895
21896 /* Update for UnitDelay: '<S741>/Unit_Delay1' incorporates:
21897 * Constant: '<S741>/Constant1'
21898 */
21899 L4_MABX_DW.Unit_Delay1_DSTATE_c = L4_MABX_P.Constant1_Value_fc;
21900
21901 /* Update for UnitDelay: '<S809>/Unit_Delay1' incorporates:
21902 * Constant: '<S809>/Constant'
21903 */
21904 L4_MABX_DW.Unit_Delay1_DSTATE_j = L4_MABX_P.Constant_Value_l2;
21905
21906 /* Update for UnitDelay: '<S809>/Unit_Delay2' */
21907 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_B.If_Then_Else_kl.Switch;
21908
21909 /* Update for UnitDelay: '<S807>/FixPt Unit Delay2' incorporates:
21910 * Constant: '<S807>/FixPt Constant'
21911 */
21912 L4_MABX_DW.FixPtUnitDelay2_DSTATE_dm = L4_MABX_P.FixPtConstant_Value_kl;
21913
21914 /* Update for UnitDelay: '<S807>/FixPt Unit Delay1' */
21915 L4_MABX_DW.FixPtUnitDelay1_DSTATE_cc = L4_MABX_B.If_Then_Else3_o.Switch;
21916
21917 /* Update for UnitDelay: '<S806>/FixPt Unit Delay2' incorporates:
21918 * Constant: '<S806>/FixPt Constant'
21919 */
21920 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i = L4_MABX_P.FixPtConstant_Value_ma;
21921
21922 /* Update for UnitDelay: '<S806>/FixPt Unit Delay1' */
21923 L4_MABX_DW.FixPtUnitDelay1_DSTATE_od = L4_MABX_B.If_Then_Else1_f.Switch;
21924
21925 /* Update for UnitDelay: '<S795>/FixPt Unit Delay2' incorporates:
21926 * Constant: '<S795>/FixPt Constant'
21927 */
21928 L4_MABX_DW.FixPtUnitDelay2_DSTATE_k = L4_MABX_P.FixPtConstant_Value_hi;
21929
21930 /* Update for UnitDelay: '<S795>/FixPt Unit Delay1' */
21931 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l = L4_MABX_B.If_Then_Else_i.Switch;
21932
21933 /* Update for Enabled SubSystem: '<S735>/Slew_at_event' incorporates:
21934 * EnablePort: '<S742>/Enable'
21935 */
21936 if (L4_MABX_DW.Slew_at_event_MODE) {
21937 /* Update for UnitDelay: '<S813>/Unit_Delay' */
21938 L4_MABX_DW.Unit_Delay_DSTATE_jo = L4_MABX_B.LogicalOperator6_b;
21939
21940 /* Update for UnitDelay: '<S814>/Unit_Delay' incorporates:
21941 * Constant: '<S814>/Constant'
21942 */
21943 L4_MABX_DW.Unit_Delay_DSTATE_aa = L4_MABX_P.Constant_Value_iu3;
21944
21945 /* Update for UnitDelay: '<S817>/FixPt Unit Delay2' incorporates:
21946 * Constant: '<S817>/FixPt Constant'
21947 */
21948 L4_MABX_DW.FixPtUnitDelay2_DSTATE_dv = L4_MABX_P.FixPtConstant_Value_h;
21949
21950 /* Update for UnitDelay: '<S817>/FixPt Unit Delay1' */
21951 L4_MABX_DW.FixPtUnitDelay1_DSTATE_oj = L4_MABX_B.If_Then_Else_ev.Switch;
21952
21953 /* Update for UnitDelay: '<S812>/Unit_Delay' */
21954 L4_MABX_DW.Unit_Delay_DSTATE_jl = L4_MABX_B.LogicalOperator_cj;
21955 }
21956
21957 /* End of Update for SubSystem: '<S735>/Slew_at_event' */
21958
21959 /* Update for Enabled SubSystem: '<S431>/CAN_RX_EC1_00' incorporates:
21960 * EnablePort: '<S515>/Enable'
21961 */
21962 if (L4_MABX_B.LogicalOperator_mj) {
21963 /* Update for UnitDelay: '<S515>/Unit Delay' */
21964 for (i = 0; i < 39; i++) {
21965 L4_MABX_DW.UnitDelay_DSTATE_ie[i] = L4_MABX_B.Data_l[i];
21966 }
21967
21968 /* End of Update for UnitDelay: '<S515>/Unit Delay' */
21969
21970 /* Update for Enabled SubSystem: '<S515>/Decode' incorporates:
21971 * EnablePort: '<S518>/Enable'
21972 */
21973 if (L4_MABX_B.RX_status_o05) {
21974 /* Update for UnitDelay: '<S518>/Unit_Delay' */
21975 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_B.timeStamp_e;
21976 }
21977
21978 /* End of Update for SubSystem: '<S515>/Decode' */
21979 }
21980
21981 /* End of Update for SubSystem: '<S431>/CAN_RX_EC1_00' */
21982
21983 /* Update for UnitDelay: '<S644>/Unit_Delay3' */
21984 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_B.LogicalOperator2_g;
21985
21986 /* Update for Enabled SubSystem: '<S454>/CAN_RX_VI_00' incorporates:
21987 * EnablePort: '<S643>/Enable'
21988 */
21989 if (L4_MABX_B.LogicalOperator_ml) {
21990 /* Update for UnitDelay: '<S643>/Unit Delay' */
21991 for (i = 0; i < 17; i++) {
21992 L4_MABX_DW.UnitDelay_DSTATE_e1[i] = L4_MABX_B.Data[i];
21993 }
21994
21995 /* End of Update for UnitDelay: '<S643>/Unit Delay' */
21996
21997 /* Update for Enabled SubSystem: '<S643>/Decode' incorporates:
21998 * EnablePort: '<S646>/Enable'
21999 */
22000 if (L4_MABX_B.RX_status_gz) {
22001 /* Update for UnitDelay: '<S646>/Unit_Delay' */
22002 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_B.timeStamp;
22003 }
22004
22005 /* End of Update for SubSystem: '<S643>/Decode' */
22006 }
22007
22008 /* End of Update for SubSystem: '<S454>/CAN_RX_VI_00' */
22009
22010 /* Update for UnitDelay: '<S644>/Unit_Delay' incorporates:
22011 * Constant: '<S644>/Constant'
22012 */
22013 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Constant_Value_kzo;
22014
22015 /* Update for UnitDelay: '<S650>/Unit_Delay' */
22016 L4_MABX_DW.Unit_Delay_DSTATE_by = L4_MABX_B.LogicalOperator1_p;
22017
22018 /* Update for UnitDelay: '<S3>/Unit_Delay' */
22019 L4_MABX_DW.Unit_Delay_79_DSTATE = EStop;
22020 L4_MABX_DW.Unit_Delay_80_DSTATE = EnableSw;
22021 L4_MABX_DW.Unit_Delay_81_DSTATE = EngagePB;
22022 L4_MABX_DW.Unit_Delay_139_DSTATE = TargetVelocity_kph;
22023 L4_MABX_DW.Unit_Delay_138_DSTATE = CurrentVelocity_kph;
22024 L4_MABX_DW.Unit_Delay_45_DSTATE = AutonomousEnabled;
22025 L4_MABX_DW.Unit_Delay_47_DSTATE = MABX_Mode;
22026
22027 /* Update for UnitDelay: '<S398>/Delay Input1' */
22028 L4_MABX_DW.DelayInput1_DSTATE_n = L4_MABX_B.Compare_c5;
22029
22030 /* Update for UnitDelay: '<S396>/Unit Delay' */
22031 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_B.Count;
22032
22033 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
22034 /* Update for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
22035 * EnablePort: '<S206>/Enable'
22036 */
22037 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
22038 /* Update for UnitDelay: '<S214>/Unit_Delay1' incorporates:
22039 * Constant: '<S214>/Constant3'
22040 */
22041 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Constant3_Value_lp;
22042
22043 /* Update for UnitDelay: '<S214>/Unit_Delay' */
22044 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_B.RelationalOperator_fl;
22045
22046 /* Update for UnitDelay: '<S241>/Unit_Delay' incorporates:
22047 * Constant: '<S241>/Constant'
22048 */
22049 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Constant_Value_ck;
22050
22051 /* Update for UnitDelay: '<S261>/Unit_Delay1' incorporates:
22052 * Constant: '<S261>/Constant'
22053 */
22054 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Constant_Value_ot;
22055
22056 /* Update for UnitDelay: '<S262>/Unit_Delay' incorporates:
22057 * Constant: '<S262>/Constant'
22058 */
22059 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Constant_Value_h0;
22060
22061 /* Update for UnitDelay: '<S266>/FixPt Unit Delay2' incorporates:
22062 * Constant: '<S266>/FixPt Constant'
22063 */
22064 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq = L4_MABX_P.FixPtConstant_Value_jk;
22065
22066 /* Update for UnitDelay: '<S266>/FixPt Unit Delay1' */
22067 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a = L4_MABX_B.If_Then_Else_cp.Switch;
22068
22069 /* Update for UnitDelay: '<S261>/Unit_Delay2' */
22070 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_B.If_Then_Else_k2.Switch;
22071
22072 /* Update for Enabled SubSystem: '<S238>/Calculate_D_term' */
22073 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_h,
22074 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
22075
22076 /* End of Update for SubSystem: '<S238>/Calculate_D_term' */
22077
22078 /* Update for UnitDelay: '<S216>/Unit_Delay' */
22079 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_B.Add_ds;
22080
22081 /* Update for Enabled SubSystem: '<S238>/Calculate_I_term' */
22082 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_n,
22083 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
22084
22085 /* End of Update for SubSystem: '<S238>/Calculate_I_term' */
22086 }
22087
22088 /* End of Update for SubSystem: '<S79>/Throttle_controller_gov' */
22089
22090 /* Update for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
22091 * EnablePort: '<S178>/Enable'
22092 */
22093 if (L4_MABX_DW.Determine_shift_interlock_brake) {
22094 /* Update for UnitDelay: '<S178>/Unit_Delay' */
22095 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_B.If_Then_Else_il.Switch;
22096
22097 /* Update for UnitDelay: '<S188>/Unit_Delay' incorporates:
22098 * Constant: '<S188>/Constant'
22099 */
22100 L4_MABX_DW.Unit_Delay_DSTATE_ae = L4_MABX_P.Constant_Value_ii;
22101
22102 /* Update for UnitDelay: '<S192>/FixPt Unit Delay2' incorporates:
22103 * Constant: '<S192>/FixPt Constant'
22104 */
22105 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l = L4_MABX_P.FixPtConstant_Value_k;
22106
22107 /* Update for UnitDelay: '<S192>/FixPt Unit Delay1' */
22108 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d = L4_MABX_B.If_Then_Else_e.Switch;
22109
22110 /* Update for UnitDelay: '<S189>/Unit_Delay' */
22111 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_B.DigitalClock_e;
22112 }
22113
22114 /* End of Update for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
22115
22116 /* Update for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
22117 * EnablePort: '<S177>/Enable'
22118 */
22119 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
22120 /* Update for UnitDelay: '<S177>/Unit_Delay' */
22121 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_B.If_Then_Else_gj.Switch;
22122
22123 /* Update for UnitDelay: '<S181>/Unit_Delay' incorporates:
22124 * Constant: '<S181>/Constant'
22125 */
22126 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Constant_Value_m3;
22127
22128 /* Update for UnitDelay: '<S185>/FixPt Unit Delay2' incorporates:
22129 * Constant: '<S185>/FixPt Constant'
22130 */
22131 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je = L4_MABX_P.FixPtConstant_Value_a;
22132
22133 /* Update for UnitDelay: '<S185>/FixPt Unit Delay1' */
22134 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b = L4_MABX_B.If_Then_Else_nz.Switch;
22135
22136 /* Update for UnitDelay: '<S182>/Unit_Delay' */
22137 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_B.DigitalClock_c;
22138 }
22139
22140 /* End of Update for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
22141
22142 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
22143 * EnablePort: '<S96>/Enable'
22144 */
22145 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
22146 /* Update for UnitDelay: '<S105>/Unit_Delay' */
22147 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_B.DigitalClock_j;
22148
22149 /* Update for UnitDelay: '<S109>/Unit_Delay' incorporates:
22150 * Constant: '<S109>/Constant'
22151 */
22152 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Constant_Value_lo;
22153
22154 /* Update for UnitDelay: '<S129>/Unit_Delay1' incorporates:
22155 * Constant: '<S129>/Constant'
22156 */
22157 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Constant_Value_olo;
22158
22159 /* Update for UnitDelay: '<S130>/Unit_Delay' incorporates:
22160 * Constant: '<S130>/Constant'
22161 */
22162 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Constant_Value_hi;
22163
22164 /* Update for UnitDelay: '<S134>/FixPt Unit Delay2' incorporates:
22165 * Constant: '<S134>/FixPt Constant'
22166 */
22167 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm = L4_MABX_P.FixPtConstant_Value_f;
22168
22169 /* Update for UnitDelay: '<S134>/FixPt Unit Delay1' */
22170 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 = L4_MABX_B.If_Then_Else_bg.Switch;
22171
22172 /* Update for UnitDelay: '<S129>/Unit_Delay2' */
22173 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_B.If_Then_Else_ly.Switch;
22174
22175 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' */
22176 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term,
22177 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
22178
22179 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
22180
22181 /* Update for UnitDelay: '<S104>/Unit_Delay' */
22182 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_B.Add_e;
22183
22184 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' */
22185 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term,
22186 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
22187
22188 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
22189 }
22190
22191 /* End of Update for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
22192
22193 /* Update for UnitDelay: '<S383>/Unit_Delay' */
22194 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_B.LogicalOperator2_f5;
22195
22196 /* Update for UnitDelay: '<S384>/Unit_Delay' incorporates:
22197 * Constant: '<S384>/Constant'
22198 */
22199 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Constant_Value_c1;
22200
22201 /* Update for UnitDelay: '<S341>/Unit_Delay' */
22202 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_B.If_Then_Else_m4.Switch;
22203
22204 /* Update for UnitDelay: '<S388>/FixPt Unit Delay2' incorporates:
22205 * Constant: '<S388>/FixPt Constant'
22206 */
22207 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a = L4_MABX_P.FixPtConstant_Value_jx;
22208
22209 /* Update for UnitDelay: '<S388>/FixPt Unit Delay1' */
22210 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h = L4_MABX_B.If_Then_Else_m4.Switch;
22211
22212 /* Update for UnitDelay: '<S385>/Unit_Delay' */
22213 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_B.DigitalClock;
22214
22215 /* Update for UnitDelay: '<S372>/Unit_Delay' */
22216 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_B.LogicalOperator1_g;
22217
22218 /* Update for UnitDelay: '<S373>/Unit_Delay' incorporates:
22219 * Constant: '<S373>/Constant'
22220 */
22221 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Constant_Value_am;
22222
22223 /* Update for UnitDelay: '<S339>/Unit_Delay' */
22224 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_B.If_Then_Else_bf.Switch;
22225
22226 /* Update for UnitDelay: '<S377>/FixPt Unit Delay2' incorporates:
22227 * Constant: '<S377>/FixPt Constant'
22228 */
22229 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip = L4_MABX_P.FixPtConstant_Value_dx;
22230
22231 /* Update for UnitDelay: '<S377>/FixPt Unit Delay1' */
22232 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq = L4_MABX_B.If_Then_Else_bf.Switch;
22233
22234 /* Update for UnitDelay: '<S374>/Unit_Delay' */
22235 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_B.DigitalClock_b;
22236
22237 /* Update for UnitDelay: '<S336>/Delay Input1' */
22238 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22239 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_B.Vehicle_speed_target_o;
22240
22241 /* Update for UnitDelay: '<S354>/Unit_Delay' */
22242 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_B.If_Then_Else_og.Switch;
22243
22244 /* Update for UnitDelay: '<S356>/Unit_Delay' */
22245 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_B.LogicalOperator1_ph;
22246
22247 /* Update for UnitDelay: '<S365>/FixPt Unit Delay2' incorporates:
22248 * Constant: '<S365>/FixPt Constant'
22249 */
22250 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f = L4_MABX_P.FixPtConstant_Value_gy;
22251
22252 /* Update for UnitDelay: '<S365>/FixPt Unit Delay1' */
22253 L4_MABX_DW.FixPtUnitDelay1_DSTATE_li = L4_MABX_B.Xnew;
22254
22255 /* Update for UnitDelay: '<S363>/Unit_Delay' */
22256 L4_MABX_DW.Unit_Delay_DSTATE_ps = L4_MABX_B.DigitalClock_f;
22257
22258 /* Update for UnitDelay: '<S343>/Delay Input1' */
22259 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22260 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_B.Vehicle_speed_target_o;
22261
22262 /* Update for UnitDelay: '<S345>/Unit_Delay' incorporates:
22263 * Constant: '<S345>/Constant'
22264 */
22265 L4_MABX_DW.Unit_Delay_DSTATE_la = L4_MABX_P.Constant_Value_pum;
22266
22267 /* Update for UnitDelay: '<S349>/FixPt Unit Delay2' incorporates:
22268 * Constant: '<S349>/FixPt Constant'
22269 */
22270 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn = L4_MABX_P.FixPtConstant_Value_az;
22271
22272 /* Update for UnitDelay: '<S349>/FixPt Unit Delay1' */
22273 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e = L4_MABX_B.If_Then_Else_pz.Switch;
22274
22275 /* Update for UnitDelay: '<S344>/Unit_Delay' */
22276 L4_MABX_DW.Unit_Delay_1_DSTATE_j =
22277 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
22278 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
22279 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_B.If_Then_Else_mm.Distance_m;
22280
22281 /* Update for UnitDelay: '<S342>/Unit_Delay' */
22282 L4_MABX_DW.Unit_Delay_DSTATE_ff = L4_MABX_B.DigitalClock_p;
22283
22284 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
22285 * EnablePort: '<S97>/Enable'
22286 */
22287 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
22288 /* Update for UnitDelay: '<S140>/Unit_Delay' */
22289 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_B.DigitalClock_n;
22290
22291 /* Update for UnitDelay: '<S147>/Unit_Delay' incorporates:
22292 * Constant: '<S147>/Constant'
22293 */
22294 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Constant_Value_j5;
22295
22296 /* Update for UnitDelay: '<S167>/Unit_Delay1' incorporates:
22297 * Constant: '<S167>/Constant'
22298 */
22299 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Constant_Value_bd;
22300
22301 /* Update for UnitDelay: '<S168>/Unit_Delay' incorporates:
22302 * Constant: '<S168>/Constant'
22303 */
22304 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Constant_Value_m2;
22305
22306 /* Update for UnitDelay: '<S172>/FixPt Unit Delay2' incorporates:
22307 * Constant: '<S172>/FixPt Constant'
22308 */
22309 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o = L4_MABX_P.FixPtConstant_Value_j;
22310
22311 /* Update for UnitDelay: '<S172>/FixPt Unit Delay1' */
22312 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 = L4_MABX_B.If_Then_Else_iy.Switch;
22313
22314 /* Update for UnitDelay: '<S167>/Unit_Delay2' */
22315 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_B.If_Then_Else_bc.Switch;
22316
22317 /* Update for Enabled SubSystem: '<S144>/Calculate_D_term' */
22318 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_p,
22319 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
22320
22321 /* End of Update for SubSystem: '<S144>/Calculate_D_term' */
22322
22323 /* Update for UnitDelay: '<S139>/Unit_Delay' */
22324 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_B.Add_mh;
22325
22326 /* Update for Enabled SubSystem: '<S144>/Calculate_I_term' */
22327 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_e,
22328 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
22329
22330 /* End of Update for SubSystem: '<S144>/Calculate_I_term' */
22331 }
22332
22333 /* End of Update for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
22334
22335 /* Update for UnitDelay: '<S101>/Unit_Delay' incorporates:
22336 * Constant: '<S101>/Constant7'
22337 */
22338 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Constant7_Value_j;
22339
22340 /* Update for UnitDelay: '<S197>/Unit_Delay1' incorporates:
22341 * Constant: '<S197>/Constant'
22342 */
22343 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Constant_Value_jf;
22344
22345 /* Update for UnitDelay: '<S197>/Unit_Delay2' */
22346 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_B.If_Then_Else_g.Switch;
22347
22348 /* Update for UnitDelay: '<S196>/UD' */
22349 L4_MABX_DW.UD_DSTATE = L4_MABX_B.TSamp;
22350
22351 /* Update for UnitDelay: '<S321>/Unit_Delay1' incorporates:
22352 * Constant: '<S321>/Constant'
22353 */
22354 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Constant_Value_hx;
22355
22356 /* Update for UnitDelay: '<S321>/Unit_Delay2' */
22357 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_B.If_Then_Else_b.Switch;
22358
22359 /* Update for UnitDelay: '<S320>/Delay Input1' */
22360 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_B.JumpNearEdge;
22361
22362 /* Update for UnitDelay: '<S322>/Unit_Delay1' incorporates:
22363 * Constant: '<S322>/Constant'
22364 */
22365 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Constant_Value_bh;
22366
22367 /* Update for UnitDelay: '<S322>/Unit_Delay2' */
22368 L4_MABX_DW.Unit_Delay2_DSTATE_im = L4_MABX_B.If_Then_Else_mk.Switch;
22369
22370 /* Update for UnitDelay: '<S323>/Unit_Delay1' incorporates:
22371 * Constant: '<S323>/Constant'
22372 */
22373 L4_MABX_DW.Unit_Delay1_DSTATE_p3 = L4_MABX_P.Constant_Value_hxo;
22374
22375 /* Update for UnitDelay: '<S323>/Unit_Delay2' */
22376 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_B.If_Then_Else_lh.Switch;
22377
22378 /* Update for Enabled SubSystem: '<S277>/Slew_at_event' incorporates:
22379 * EnablePort: '<S328>/Enable'
22380 */
22381 if (L4_MABX_DW.Slew_at_event_MODE_d) {
22382 /* Update for UnitDelay: '<S330>/Unit_Delay' */
22383 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_B.DataTypeConversion_l1;
22384
22385 /* Update for UnitDelay: '<S331>/Unit_Delay' incorporates:
22386 * Constant: '<S331>/Constant'
22387 */
22388 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Constant_Value_hg;
22389
22390 /* Update for UnitDelay: '<S334>/FixPt Unit Delay2' incorporates:
22391 * Constant: '<S334>/FixPt Constant'
22392 */
22393 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j = L4_MABX_P.FixPtConstant_Value_n;
22394
22395 /* Update for UnitDelay: '<S334>/FixPt Unit Delay1' */
22396 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ov = L4_MABX_B.If_Then_Else_n3.Switch;
22397
22398 /* Update for UnitDelay: '<S329>/Unit_Delay' */
22399 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_B.LogicalOperator_dm;
22400 }
22401
22402 /* End of Update for SubSystem: '<S277>/Slew_at_event' */
22403
22404 /* Update for UnitDelay: '<S279>/Unit Delay' */
22405 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_B.Switch1_fi;
22406
22407 /* Update for UnitDelay: '<S289>/Unit Delay' */
22408 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_B.Add1_m;
22409
22410 /* Update for UnitDelay: '<S290>/Unit Delay' */
22411 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_B.Switch_k;
22412
22413 /* Update for UnitDelay: '<S290>/Unit Delay1' */
22414 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_B.Divide1_b;
22415
22416 /* Update for UnitDelay: '<S284>/Unit Delay' */
22417 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_B.Switch1_pb;
22418
22419 /* Update for UnitDelay: '<S302>/Delay Input2' */
22420 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_B.DifferenceInputs2;
22421
22422 /* Update for DiscreteIntegrator: '<S301>/Integrator' */
22423 L4_MABX_DW.Integrator_DSTATE += L4_MABX_P.Integrator_gainval *
22424 L4_MABX_B.IntegralGain;
22425 L4_MABX_DW.Integrator_PrevResetState = (int8_T)AutonomousEnabled;
22426
22427 /* Update for DiscreteIntegrator: '<S301>/Filter' */
22428 L4_MABX_DW.Filter_DSTATE += L4_MABX_P.Filter_gainval *
22429 L4_MABX_B.FilterCoefficient;
22430 L4_MABX_DW.Filter_PrevResetState = (int8_T)AutonomousEnabled;
22431
22432 /* Update for UnitDelay: '<S305>/Delay Input' */
22433 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_B.Saturate;
22434
22435 /* Update for UnitDelay: '<S305>/Delay Output' */
22436 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_B.Downcast;
22437
22438 /* Update for UnitDelay: '<S303>/Delay Input2' */
22439 L4_MABX_DW.DelayInput2_DSTATE_a = L4_MABX_B.DifferenceInputs2_a;
22440
22441 /* Update for DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
22442 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 0U;
22443 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE +=
22444 L4_MABX_P.DiscreteTimeIntegrator_gainval * L4_MABX_B.Gain_o;
22445 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = (int8_T)AutonomousEnabled;
22446
22447 /* Update for UnitDelay: '<S315>/Delay Input2' */
22448 L4_MABX_DW.DelayInput2_DSTATE_l = L4_MABX_B.DifferenceInputs2_m;
22449
22450 /* Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
22451 * Constant: '<S80>/ResetIntegrator'
22452 */
22453 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e +=
22454 L4_MABX_P.DiscreteTimeIntegrator_gainva_l * L4_MABX_B.Switch1_p;
22455 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
22456 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
22457 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22458 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
22459 } else {
22460 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
22461 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
22462 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22463 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
22464 }
22465 }
22466
22467 if (L4_MABX_P.ResetIntegrator_Value > 0.0) {
22468 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 1;
22469 } else if (L4_MABX_P.ResetIntegrator_Value < 0.0) {
22470 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = -1;
22471 } else if (L4_MABX_P.ResetIntegrator_Value == 0.0) {
22472 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
22473 } else {
22474 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 2;
22475 }
22476
22477 /* End of Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
22478
22479 /* Update for UnitDelay: '<S80>/Unit Delay' */
22480 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_B.Switch2_i1;
22481
22482 /* Update for UnitDelay: '<S367>/FixPt Unit Delay2' incorporates:
22483 * Constant: '<S367>/FixPt Constant'
22484 */
22485 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw = L4_MABX_P.FixPtConstant_Value_p;
22486
22487 /* Update for UnitDelay: '<S367>/FixPt Unit Delay1' */
22488 L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe = L4_MABX_B.Xnew_h;
22489
22490 /* Update for UnitDelay: '<S368>/FixPt Unit Delay2' incorporates:
22491 * Constant: '<S368>/FixPt Constant'
22492 */
22493 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g = L4_MABX_P.FixPtConstant_Value_e;
22494
22495 /* Update for UnitDelay: '<S368>/FixPt Unit Delay1' */
22496 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g = L4_MABX_B.Xnew_f;
22497
22498 /* Update for UnitDelay: '<S362>/Unit_Delay' */
22499 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_B.DigitalClock_d;
22500
22501 /* End of Update for SubSystem: '<S65>/Task_10ms' */
22502
22503 /* Update for Atomic SubSystem: '<S824>/CAN_TX_10ms' */
22504
22505 /* Update for UnitDelay: '<S981>/Unit_Delay' */
22506 L4_MABX_DW.Unit_Delay_DSTATE_ep = L4_MABX_B.Operator_ca;
22507
22508 /* Update for UnitDelay: '<S982>/Unit Delay' */
22509 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_B.Switch1_e;
22510
22511 /* End of Update for SubSystem: '<S824>/CAN_TX_10ms' */
22512
22513 /* Update for UnitDelay: '<S834>/Unit Delay2' */
22514 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_B.enTPCM;
22515
22516 /* Update for UnitDelay: '<S834>/Unit Delay1' */
22517 L4_MABX_DW.UnitDelay1_DSTATE_i = L4_MABX_B.TPDT_count;
22518
22519 /* Update for UnitDelay: '<S834>/Unit Delay3' */
22520 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_B.enTPDT;
22521
22522 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
22523 * Constant: '<S202>/Constant'
22524 * Constant: '<S80>/zero'
22525 */
22526 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_B.Subtract_c1;
22527 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_B.Add1_h;
22528 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_B.SPN1760_GrossCombinationVehicle;
22529 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_B.ACCDistanceAlertSignal;
22530 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_B.ForwardCollisionWarning;
22531 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_B.SPN544_EngineReferenceTorque;
22532 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_B.SFunction1_o4_e2;
22533 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_B.SFunction1_o5_g;
22534 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_B.SFunction1_o6_c;
22535 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_B.SFunction1_o7_k;
22536 L4_MABX_DW.Unit_Delay_108_DSTATE = SteerWheelAngle;
22537 L4_MABX_DW.Unit_Delay_109_DSTATE = YawRate;
22538 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_B.Switch2_i1;
22539 L4_MABX_DW.Unit_Delay_110_DSTATE = SPN1810_LongitudinalAcceleration;
22540 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_B.SFunction1_o2_jf;
22541 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_B.SFunction1_o3_eg;
22542 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_B.SFunction1_o5_l;
22543 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_B.SFunction1_o1_e3;
22544 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_B.SFunction1_o3_f4;
22545 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_B.LogicalOperator1_p;
22546 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_B.LogicalOperator1_n;
22547 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_B.PitchAngleExRange;
22548 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_B.SFunction1_o3_lm;
22549 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_B.DiscreteTimeIntegrator_h;
22550 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_B.SFunction1_o1_ae;
22551 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_B.SFunction1_o2_iv;
22552 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_B.Latitude_;
22553 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_B.Longitude_;
22554 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_B.HDOP_;
22555 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_B.XPRControlMode;
22556 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_B.XPRErrorState;
22557 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_B.PressureP1;
22558 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_B.PressureP4;
22559 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_B.PressureP21;
22560 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_B.numLanePoints_j;
22561 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_B.PressureP22;
22562 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_B.PressureP42;
22563 L4_MABX_DW.Unit_Delay_132_DSTATE = ReAX_ActualHandwheelPos;
22564 L4_MABX_DW.Unit_Delay_133_DSTATE = ReAX_EchoedSteerWheelPos;
22565 L4_MABX_DW.Unit_Delay_134_DSTATE = RTMapsOk;
22566 L4_MABX_DW.Unit_Delay_135_DSTATE = SupervisorMode;
22567 L4_MABX_DW.Unit_Delay_136_DSTATE = CurrentAzimuth_rad;
22568 L4_MABX_DW.Unit_Delay_137_DSTATE = TargetAzimuth_rad;
22569 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_B.correctedError;
22570 L4_MABX_DW.Unit_Delay_140_DSTATE = Curvature;
22571 L4_MABX_DW.Unit_Delay_141_DSTATE = CrosstrackError;
22572 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_B.Switch1_j;
22573 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_B.rad2deg1;
22574 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_B.If_Then_Else_iz.Switch;
22575 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_B.APTC_arb_pedal_low_idl_sw_o;
22576 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_B.If_Then_Else_fh.Switch;
22577 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_B.Add3;
22578 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Constant_Value_jg4;
22579 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_B.If_Then_Else_pi.Switch;
22580 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_B.Add_ds;
22581 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_B.If_Then_Else_k2.Switch;
22582 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_B.Product_i;
22583 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_B.PID_i_term_c;
22584 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_B.PID_d_term_c;
22585 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_B.PID_hold_i_term_f_b;
22586 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_B.ThrottlePID_Y_m;
22587 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_B.MinMax1_n;
22588 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_B.Add_px;
22589 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_B.F_Ignition_relay_command_i;
22590 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_B.F_Inverter_relay_command_p;
22591 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_B.F_MABX_relay_command_n;
22592 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_B.F_Sensor_relay_command_k;
22593 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_B.BrkPedArbBrakeSwitch_c;
22594 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_B.Diff;
22595 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_B.F_Brake_control_active;
22596 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_B.F_Hold_brakes_at_zero_d;
22597 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_B.BrakingPID_Y_k;
22598 L4_MABX_DW.Unit_Delay_39_DSTATE = 0.0;
22599 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_B.Product_d;
22600 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
22601 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_B.Vehicle_speed_target_n;
22602 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_B.VSPD_HYST_KPH_APV_f;
22603 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b;
22604 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_B.ACCEL_LIM_MS2_APV_b;
22605 L4_MABX_DW.Unit_Delay_46_DSTATE = AutonomousOutputEnabled;
22606 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_B.Switch2_i;
22607 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_B.Conversion;
22608 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_B.Add2;
22609 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.zero_Value;
22610 L4_MABX_DW.Unit_Delay_82_DSTATE = Pedal_pwm_position;
22611 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_B.IgnitionKeySwitch_voltage;
22612 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_B.SFunction1_o8_k;
22613 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_B.SFunction1_o2_hi;
22614 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_B.SFunction1_o7_id;
22615 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_B.SFunction1_o1_h54;
22616 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_B.SFunction1_o1_br;
22617 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_B.SFunction1_o2_oc;
22618 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_B.Add1_h;
22619 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_B.SFunction1_o4_ow;
22620 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_B.SPN524_TransSelectedGear;
22621 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_B.SPN523_TransCurrentGear;
22622 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_B.SPN526_TransActualGearRatio;
22623 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_B.SFunction1_o4_ga;
22624 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_B.SFunction1_o2_ec;
22625 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_B.SFunction1_o5_dc;
22626 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_B.SFunction1_o3_ir;
22627 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_B.SPN514_NominalFrictionPercentTo;
22628 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
22629
22630 /* Update for UnitDelay: '<S644>/Unit_Delay2' */
22631 L4_MABX_DW.Unit_Delay2_DSTATE_j = L4_MABX_B.LogicalOperator2_d;
22632
22633 /* Update for UnitDelay: '<S644>/Unit_Delay1' incorporates:
22634 * Constant: '<S644>/Constant1'
22635 */
22636 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Constant1_Value_ef;
22637
22638 /* Update for UnitDelay: '<S651>/Unit_Delay' */
22639 L4_MABX_DW.Unit_Delay_DSTATE_j0 = L4_MABX_B.LogicalOperator1_n;
22640
22641 /* Update for UnitDelay: '<S10>/Unit_Delay' incorporates:
22642 * Constant: '<S10>/Constant'
22643 */
22644 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Constant_Value_g5;
22645
22646 /* Update absolute time */
22647 /* The "clockTick0" counts the number of times the code of this task has
22648 * been executed. The absolute time is the multiplication of "clockTick0"
22649 * and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
22650 * overflow during the application lifespan selected.
22651 * Timer of this task consists of two 32 bit unsigned integers.
22652 * The two integers represent the low bits Timing.clockTick0 and the high bits
22653 * Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
22654 */
22655 if (!(++L4_MABX_M->Timing.clockTick0)) {
22656 ++L4_MABX_M->Timing.clockTickH0;
22657 }
22658
22659 L4_MABX_M->Timing.t[0] = L4_MABX_M->Timing.clockTick0 *
22660 L4_MABX_M->Timing.stepSize0 + L4_MABX_M->Timing.clockTickH0 *
22661 L4_MABX_M->Timing.stepSize0 * 4294967296.0;
22662}
22663
22664/* Model output function for TID1 */
22665void L4_MABX_output1(void) /* Sample time: [0.02s, 0.0s] */
22666{
22667 int_T tid = 1;
22668 int32_T i;
22669 uint32_T q0;
22670 uint32_T qY;
22671 uint8_T tmp;
22672 real_T u0;
22673 real_T u1;
22674 real_T u2;
22675
22676 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_20ms' */
22677
22678 /* Switch: '<S990>/Switch1' incorporates:
22679 * Constant: '<S990>/Constant4'
22680 */
22681 if (L4_MABX_B.AutonomousOutputEnabled_nr) {
22682 /* Product: '<S990>/Divide1' incorporates:
22683 * Constant: '<S990>/Constant2'
22684 */
22685 L4_MABX_B.XBRExternalAccelDemand_a = L4_MABX_B.BrakingPID_Y_e *
22686 L4_MABX_P.Constant2_Value_e;
22687 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_B.XBRExternalAccelDemand_a;
22688 } else {
22689 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_P.Constant4_Value_f;
22690 }
22691
22692 /* End of Switch: '<S990>/Switch1' */
22693
22694 /* MultiPortSwitch: '<S990>/Multiport Switch' incorporates:
22695 * Constant: '<S990>/Constant10'
22696 * Constant: '<S990>/Constant7'
22697 * Constant: '<S990>/Constant8'
22698 * Constant: '<S990>/Constant9'
22699 */
22700 switch ((int32_T)L4_MABX_B.BrakingControlActive_b) {
22701 case 0:
22702 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant10_Value_j;
22703 break;
22704
22705 case 1:
22706 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant7_Value_g;
22707 break;
22708
22709 case 2:
22710 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant8_Value_o;
22711 break;
22712
22713 default:
22714 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant9_Value_f;
22715 break;
22716 }
22717
22718 /* End of MultiPortSwitch: '<S990>/Multiport Switch' */
22719
22720 /* Outputs for Atomic SubSystem: '<S990>/If_Then_Else' */
22721
22722 /* Constant: '<S990>/XBRValueOverride' incorporates:
22723 * Constant: '<S990>/XBRControlMode'
22724 * Constant: '<S990>/XBRControlModeOVR'
22725 * Constant: '<S990>/XBREnduranceBrakeIntegrationMode'
22726 * Constant: '<S990>/XBREnduranceBrakeIntegrationModeOVR'
22727 * Constant: '<S990>/XBRExternalAccelDemandOVR'
22728 * Constant: '<S990>/XBRPassThroughActiveOVR'
22729 * Constant: '<S990>/XBRPassThroughEnabled'
22730 * Constant: '<S990>/XBRPassThroughEnabledOVR'
22731 * Constant: '<S990>/XBRPriority'
22732 * Constant: '<S990>/XBRPriorityOVR'
22733 * Constant: '<S990>/XBRUrgency'
22734 * Constant: '<S990>/XBRUrgencyOVR'
22735 */
22736 L4_MABX_If_Then_Else_d(L4_MABX_P.XBRValueOverride_Value,
22737 L4_MABX_P.XBRExternalAccelDemandOVR_Value,
22738 L4_MABX_P.XBREnduranceBrakeIntegrationMod, L4_MABX_P.XBRPriorityOVR_Value,
22739 L4_MABX_P.XBRControlModeOVR_Value, L4_MABX_P.XBRPassThroughActiveOVR_Value,
22740 L4_MABX_P.XBRUrgencyOVR_Value, L4_MABX_P.XBRPassThroughEnabledOVR_Value,
22741 L4_MABX_B.XBRExternalAccelDemand, L4_MABX_P.XBREnduranceBrakeIntegrationM_l,
22742 L4_MABX_P.XBRPriority_Value, L4_MABX_P.XBRControlMode_Value,
22743 L4_MABX_B.XBRPassThroughActive, L4_MABX_P.XBRUrgency_Value,
22744 L4_MABX_P.XBRPassThroughEnabled_Value, &L4_MABX_B.If_Then_Else_d);
22745
22746 /* End of Outputs for SubSystem: '<S990>/If_Then_Else' */
22747
22748 /* DataTypeConversion: '<S993>/Data Type Conversion1' */
22749 L4_MABX_B.DataTypeConversion1_p = (real_T)
22750 L4_MABX_B.If_Then_Else_d.XBREnduranceBrakeIntegrationMod;
22751
22752 /* DataTypeConversion: '<S993>/Data Type Conversion2' */
22753 L4_MABX_B.DataTypeConversion2_h = (real_T)L4_MABX_B.If_Then_Else_d.XBRPriority;
22754
22755 /* DataTypeConversion: '<S993>/Data Type Conversion3' */
22756 L4_MABX_B.DataTypeConversion3_o = (real_T)
22757 L4_MABX_B.If_Then_Else_d.XBRControlMode;
22758
22759 /* DataTypeConversion: '<S993>/Data Type Conversion4' */
22760 L4_MABX_B.DataTypeConversion4_k =
22761 L4_MABX_B.If_Then_Else_d.XBRExternalAccelDemand;
22762
22763 /* DataTypeConversion: '<S993>/Data Type Conversion5' */
22764 L4_MABX_B.DataTypeConversion5_a = (real_T)
22765 L4_MABX_B.If_Then_Else_d.XBRPassThroughActive;
22766
22767 /* DataTypeConversion: '<S993>/Data Type Conversion6' */
22768 L4_MABX_B.DataTypeConversion6_h = L4_MABX_B.If_Then_Else_d.XBRUrgency;
22769
22770 /* DataTypeConversion: '<S993>/Data Type Conversion7' */
22771 L4_MABX_B.DataTypeConversion7_o =
22772 L4_MABX_B.If_Then_Else_d.XBRPassThroughEnabled;
22773
22774 /* UnitDelay: '<S986>/Unit_Delay' */
22775 L4_MABX_B.Unit_Delay_nl = L4_MABX_DW.Unit_Delay_DSTATE_f2;
22776
22777 /* Logic: '<S986>/Logical Operator8' */
22778 L4_MABX_B.LogicalOperator8_n = !L4_MABX_B.TmpRTBAtLogicalOperator8Inport1;
22779
22780 /* Logic: '<S986>/Logical Operator7' */
22781 L4_MABX_B.LogicalOperator7_h = (L4_MABX_B.Unit_Delay_nl &&
22782 L4_MABX_B.LogicalOperator8_n);
22783
22784 /* Logic: '<S986>/Logical Operator1' */
22785 L4_MABX_B.LogicalOperator1_l = (L4_MABX_B.LogicalOperator7_h ||
22786 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2);
22787
22788 /* DataTypeConversion: '<S986>/Data Type Conversion' incorporates:
22789 * Constant: '<S830>/CANT_PROPB_XBR_B3_CHANNEL_APV'
22790 */
22791 u0 = L4_MABX_P.CANT_PROPB_XBR_B3_CHANNEL_APV_V;
22792 if (u0 < 256.0) {
22793 if (u0 >= 0.0) {
22794 tmp = (uint8_T)u0;
22795 } else {
22796 tmp = 0U;
22797 }
22798 } else {
22799 tmp = MAX_uint8_T;
22800 }
22801
22802 L4_MABX_B.DataTypeConversion_df = tmp;
22803
22804 /* End of DataTypeConversion: '<S986>/Data Type Conversion' */
22805
22806 /* S-Function (sfix_bitop): '<S991>/Operator' */
22807 L4_MABX_B.Operator_bf = (uint8_T)(L4_MABX_B.DataTypeConversion_df &
22808 L4_MABX_P.Operator_BitMask_gm);
22809
22810 /* DataTypeConversion: '<S991>/DataType' */
22811 L4_MABX_B.DataType_o5f = L4_MABX_B.Operator_bf;
22812
22813 /* DataTypeConversion: '<S986>/Data Type Conversion2' */
22814 L4_MABX_B.DataTypeConversion2_jx = (L4_MABX_B.DataType_o5f != 0);
22815
22816 /* Logic: '<S986>/Logical Operator' */
22817 L4_MABX_B.LogicalOperator_c = (L4_MABX_B.LogicalOperator1_l &&
22818 L4_MABX_B.DataTypeConversion2_jx);
22819
22820 /* Outputs for Enabled SubSystem: '<S993>/PropB_XBR_B3' incorporates:
22821 * EnablePort: '<S994>/Enable'
22822 */
22823 if (L4_MABX_B.LogicalOperator_c) {
22824 /* S-Function (rti_commonblock): '<S994>/S-Function1' */
22825 /* This comment workarounds a code generation problem */
22826
22827 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
22828 {
22829 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
22830
22831 Float32 delayTime = 0.0;
22832
22833 /* ... Read status and timestamp info (previous message) */
22834 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]);
22835
22836 /* Convert timestamp */
22837 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed) {
22838 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp =
22839 rtk_dsts_time_to_simtime_convert
22840 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp);
22841 }
22842
22843 /* Messages with timestamp zero have been received in pause/stop state
22844 and must not be handled.
22845 */
22846 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp > 0.0) {
22847 L4_MABX_B.SFunction1_o1_bu = (real_T)
22848 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed;
22849 L4_MABX_B.SFunction1_o2_ak = (real_T)
22850 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp;
22851 L4_MABX_B.SFunction1_o3_d = (real_T)
22852 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->deltatime;
22853 L4_MABX_B.SFunction1_o4_j = (real_T)
22854 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->delaytime;
22855 }
22856
22857 /* ... Encode Simulink signals of TX and RM blocks*/
22858 {
22859 rtican_Signal_t CAN_Sgn;
22860
22861 /* ...... "SPN2920_ExternalAccelerationDemand" (0|16, standard signal, unsigned int, little endian) */
22862 /* Add or substract 0.5 in order to round to nearest integer */
22863 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_k -
22864 ( -15.687 ) ) / 0.00048828125 + 0.5);
22865 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
22866 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
22867 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
22868
22869 /* ...... "SPN2915_XBREnduranceBrkIntegrationMode" (16|2, standard signal, unsigned int, little endian) */
22870 /* Add or substract 0.5 in order to round to nearest integer */
22871 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_p ) +
22872 0.5);
22873 CAN_Sgn.UnsignedSgn &= 0x00000003;
22874 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22875
22876 /* ...... "SPN2915_XBRPriority" (18|2, standard signal, unsigned int, little endian) */
22877 /* Add or substract 0.5 in order to round to nearest integer */
22878 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_h ) +
22879 0.5);
22880 CAN_Sgn.UnsignedSgn &= 0x00000003;
22881 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
22882 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22883
22884 /* ...... "SPN2916_XBRControlMode" (20|2, standard signal, unsigned int, little endian) */
22885 /* Add or substract 0.5 in order to round to nearest integer */
22886 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_o ) +
22887 0.5);
22888 CAN_Sgn.UnsignedSgn &= 0x00000003;
22889 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
22890 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22891
22892 /* ...... "XBRPassThroughActive" (22|2, standard signal, unsigned int, little endian) */
22893 /* Add or substract 0.5 in order to round to nearest integer */
22894 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_a ) +
22895 0.5);
22896 CAN_Sgn.UnsignedSgn &= 0x00000003;
22897 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22898 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22899
22900 /* ...... "SPN4099_XBRUrgency" (24|8, standard signal, unsigned int, little endian) */
22901 /* Add or substract 0.5 in order to round to nearest integer */
22902 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_h - ( 0 )
22903 ) / 0.4 + 0.5);
22904 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22905 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
22906
22907 /* ...... "XBRPassThroughEnable" (54|2, standard signal, unsigned int, little endian) */
22908 /* Add or substract 0.5 in order to round to nearest integer */
22909 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_o ) +
22910 0.5);
22911 CAN_Sgn.UnsignedSgn &= 0x00000003;
22912 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22913 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
22914 }
22915
22916 /* mask unused bits with '1' */
22917 CAN_Msg[4] |= 0xFF;
22918 CAN_Msg[5] |= 0xFF;
22919 CAN_Msg[6] |= 0x3F;
22920 CAN_Msg[7] |= 0xFF;
22921
22922 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
22923 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3], 8,
22924 &(CAN_Msg[0]), delayTime);
22925 }
22926 }
22927
22928 /* End of Outputs for SubSystem: '<S993>/PropB_XBR_B3' */
22929
22930 /* RelationalOperator: '<S992>/Compare' incorporates:
22931 * Constant: '<S992>/Constant'
22932 */
22933 L4_MABX_B.Compare_o = (L4_MABX_B.If_Then_Else_d.XBRPassThroughActive ==
22934 L4_MABX_P.CompareToConstant_const_p);
22935
22936 /* Saturate: '<S989>/Saturation' incorporates:
22937 * Constant: '<S989>/2C2_OR_VALUE_APV'
22938 */
22939 u0 = L4_MABX_P.uC2_OR_VALUE_APV_Value;
22940 u1 = L4_MABX_P.Saturation_LowerSat_i;
22941 u2 = L4_MABX_P.Saturation_UpperSat_el;
22942 if (u0 > u2) {
22943 L4_MABX_B.Saturation_b = u2;
22944 } else if (u0 < u1) {
22945 L4_MABX_B.Saturation_b = u1;
22946 } else {
22947 L4_MABX_B.Saturation_b = u0;
22948 }
22949
22950 /* End of Saturate: '<S989>/Saturation' */
22951
22952 /* Outputs for Atomic SubSystem: '<S989>/If_Then_Else1' */
22953
22954 /* Constant: '<S989>/F_2C2_OR_APV' */
22955 L4_MABX_If_Then_Else_g(L4_MABX_P.F_2C2_OR_APV_Value, L4_MABX_B.Saturation_b,
22956 L4_MABX_B.BrakingPID_Y_es, &L4_MABX_B.If_Then_Else1_mfx);
22957
22958 /* End of Outputs for SubSystem: '<S989>/If_Then_Else1' */
22959
22960 /* Gain: '<S989>/Gain' */
22961 L4_MABX_B.Gain_i = L4_MABX_P.Gain_Gain_l * L4_MABX_B.If_Then_Else1_mfx.Switch;
22962
22963 /* Gain: '<S1006>/Gain' */
22964 L4_MABX_B.Gain_c = L4_MABX_P.Gain_Gain_mt * L4_MABX_B.Gain_i;
22965
22966 /* DataTypeConversion: '<S1006>/Data Type Conversion2' */
22967 u0 = floor(L4_MABX_B.Gain_c);
22968 if (rtIsNaN(u0) || rtIsInf(u0)) {
22969 u0 = 0.0;
22970 } else {
22971 u0 = fmod(u0, 256.0);
22972 }
22973
22974 L4_MABX_B.DataTypeConversion2_nc = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22975 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22976
22977 /* End of DataTypeConversion: '<S1006>/Data Type Conversion2' */
22978
22979 /* DataTypeConversion: '<S1006>/Data Type Conversion3' incorporates:
22980 * Constant: '<S989>/BrkControlMode_Active'
22981 */
22982 u0 = floor(L4_MABX_P.BrkControlMode_Active_Value);
22983 if (rtIsNaN(u0) || rtIsInf(u0)) {
22984 u0 = 0.0;
22985 } else {
22986 u0 = fmod(u0, 256.0);
22987 }
22988
22989 L4_MABX_B.DataTypeConversion3_m1 = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22990 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22991
22992 /* End of DataTypeConversion: '<S1006>/Data Type Conversion3' */
22993
22994 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator14' */
22995 L4_MABX_B.BitwiseOperator14 = (uint8_T)(L4_MABX_B.DataTypeConversion3_m1 &
22996 L4_MABX_P.BitwiseOperator14_BitMask);
22997
22998 /* DataTypeConversion: '<S1006>/Data Type Conversion4' incorporates:
22999 * Constant: '<S989>/BrkControlPriority'
23000 */
23001 u0 = floor(L4_MABX_P.BrkControlPriority_Value);
23002 if (rtIsNaN(u0) || rtIsInf(u0)) {
23003 u0 = 0.0;
23004 } else {
23005 u0 = fmod(u0, 256.0);
23006 }
23007
23008 L4_MABX_B.DataTypeConversion4_o = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23009 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23010
23011 /* End of DataTypeConversion: '<S1006>/Data Type Conversion4' */
23012
23013 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator1' */
23014 L4_MABX_B.BitwiseOperator1 = (uint8_T)(L4_MABX_B.DataTypeConversion4_o &
23015 L4_MABX_P.BitwiseOperator1_BitMask);
23016
23017 /* ArithShift: '<S1006>/Shift_Arithmetic ' */
23018 L4_MABX_B.Shift_Arithmetic_ps = (uint8_T)(L4_MABX_B.BitwiseOperator1 << 2);
23019
23020 /* DataTypeConversion: '<S1006>/Data Type Conversion12' */
23021 L4_MABX_B.DataTypeConversion12_i = L4_MABX_B.Shift_Arithmetic_ps;
23022
23023 /* DataTypeConversion: '<S1006>/Data Type Conversion6' incorporates:
23024 * Constant: '<S1006>/Constant2'
23025 */
23026 L4_MABX_B.DataTypeConversion6_c = L4_MABX_P.Constant2_Value_k;
23027
23028 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator17' */
23029 L4_MABX_B.BitwiseOperator17_a = (uint8_T)(L4_MABX_B.BitwiseOperator14 |
23030 L4_MABX_B.DataTypeConversion12_i | L4_MABX_B.DataTypeConversion6_c);
23031
23032 /* Gain: '<S1006>/Gain1' incorporates:
23033 * Constant: '<S989>/BrkControl_RearAxlePressureProportioning'
23034 */
23035 L4_MABX_B.Gain1_f = L4_MABX_P.Gain1_Gain_e *
23036 L4_MABX_P.BrkControl_RearAxlePressureProp;
23037
23038 /* DataTypeConversion: '<S1006>/Data Type Conversion11' */
23039 u0 = floor(L4_MABX_B.Gain1_f);
23040 if (rtIsNaN(u0) || rtIsInf(u0)) {
23041 u0 = 0.0;
23042 } else {
23043 u0 = fmod(u0, 256.0);
23044 }
23045
23046 L4_MABX_B.DataTypeConversion11_e = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
23047 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
23048
23049 /* End of DataTypeConversion: '<S1006>/Data Type Conversion11' */
23050
23051 /* Reshape: '<S1009>/Reshape' incorporates:
23052 * Constant: '<S1009>/Constant'
23053 */
23054 for (i = 0; i < 16; i++) {
23055 L4_MABX_B.Reshape_j[i] = L4_MABX_P.Repeating_Sequence_Stair_OutV_c[i];
23056 }
23057
23058 /* End of Reshape: '<S1009>/Reshape' */
23059
23060 /* UnitDelay: '<S1009>/Unit_Delay' */
23061 L4_MABX_B.Unit_Delay_c = L4_MABX_DW.Unit_Delay_DSTATE_pd;
23062
23063 /* UnitDelay: '<S1010>/Unit Delay' */
23064 L4_MABX_B.UnitDelay_a = L4_MABX_DW.UnitDelay_DSTATE_is;
23065
23066 /* Switch: '<S1013>/Switch1' incorporates:
23067 * Constant: '<S1010>/E'
23068 * Constant: '<S1010>/IV'
23069 * Switch: '<S1012>/Switch1'
23070 */
23071 if (L4_MABX_B.Unit_Delay_c) {
23072 L4_MABX_B.Switch1_k = L4_MABX_P.IV_Value_a;
23073 } else {
23074 if (L4_MABX_P.E_Value_mt) {
23075 /* Sum: '<S1010>/Subtract' incorporates:
23076 * Constant: '<S1010>/Constant'
23077 * Switch: '<S1012>/Switch1'
23078 */
23079 q0 = L4_MABX_P.Constant_Value_pc;
23080 qY = q0 + L4_MABX_B.UnitDelay_a;
23081 if (qY < q0) {
23082 qY = MAX_uint32_T;
23083 }
23084
23085 L4_MABX_B.Subtract_e1 = qY;
23086
23087 /* End of Sum: '<S1010>/Subtract' */
23088
23089 /* Switch: '<S1012>/Switch1' */
23090 L4_MABX_B.Switch1_n = L4_MABX_B.Subtract_e1;
23091 } else {
23092 /* Switch: '<S1012>/Switch1' */
23093 L4_MABX_B.Switch1_n = L4_MABX_B.UnitDelay_a;
23094 }
23095
23096 L4_MABX_B.Switch1_k = L4_MABX_B.Switch1_n;
23097 }
23098
23099 /* End of Switch: '<S1013>/Switch1' */
23100
23101 /* Selector: '<S1009>/Selector' */
23102 L4_MABX_B.Selector_e = L4_MABX_B.Reshape_j[(int32_T)L4_MABX_B.Switch1_k - 1];
23103
23104 /* DataTypeConversion: '<S1006>/Data Type Conversion10' */
23105 L4_MABX_B.DataTypeConversion10_hb = L4_MABX_B.Selector_e;
23106
23107 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator6' */
23108 L4_MABX_B.BitwiseOperator6 = (uint8_T)(L4_MABX_B.DataTypeConversion10_hb &
23109 L4_MABX_P.BitwiseOperator6_BitMask);
23110
23111 /* DataTypeConversion: '<S1005>/Data Type Conversion6' incorporates:
23112 * Constant: '<S1005>/Priority'
23113 */
23114 L4_MABX_B.DataTypeConversion6_k = L4_MABX_P.Priority_Value_f;
23115
23116 /* ArithShift: '<S1005>/Shift_Arithmetic 5' */
23117 L4_MABX_B.Shift_Arithmetic5 = L4_MABX_B.DataTypeConversion6_k << 26;
23118
23119 /* DataTypeConversion: '<S1005>/Data Type Conversion7' incorporates:
23120 * Constant: '<S1005>/ExtendedDataPage'
23121 */
23122 L4_MABX_B.DataTypeConversion7_n = L4_MABX_P.ExtendedDataPage_Value_p;
23123
23124 /* ArithShift: '<S1005>/Shift_Arithmetic 6' */
23125 L4_MABX_B.Shift_Arithmetic6 = L4_MABX_B.DataTypeConversion7_n << 25;
23126
23127 /* DataTypeConversion: '<S1005>/Data Type Conversion8' incorporates:
23128 * Constant: '<S1005>/DataPage'
23129 */
23130 L4_MABX_B.DataTypeConversion8_l = L4_MABX_P.DataPage_Value_l;
23131
23132 /* ArithShift: '<S1005>/Shift_Arithmetic 7' */
23133 L4_MABX_B.Shift_Arithmetic7 = L4_MABX_B.DataTypeConversion8_l << 24;
23134
23135 /* DataTypeConversion: '<S1005>/Data Type Conversion9' incorporates:
23136 * Constant: '<S1005>/PDUFormat'
23137 */
23138 L4_MABX_B.DataTypeConversion9_c = L4_MABX_P.PDUFormat_Value_et;
23139
23140 /* ArithShift: '<S1005>/Shift_Arithmetic 8' */
23141 L4_MABX_B.Shift_Arithmetic8 = L4_MABX_B.DataTypeConversion9_c << 16;
23142
23143 /* DataTypeConversion: '<S1005>/Data Type Conversion10' incorporates:
23144 * Constant: '<S1005>/PDUSpecific'
23145 */
23146 L4_MABX_B.DataTypeConversion10_h = L4_MABX_P.PDUSpecific_Value_p;
23147
23148 /* ArithShift: '<S1005>/Shift_Arithmetic 9' */
23149 L4_MABX_B.Shift_Arithmetic9 = L4_MABX_B.DataTypeConversion10_h << 8;
23150
23151 /* DataTypeConversion: '<S1005>/Data Type Conversion11' incorporates:
23152 * Constant: '<S1005>/SourceAddress'
23153 */
23154 L4_MABX_B.DataTypeConversion11_i = L4_MABX_P.SourceAddress_Value_b;
23155
23156 /* S-Function (sfix_bitop): '<S1005>/Bitwise Operator17' */
23157 L4_MABX_B.BitwiseOperator17 = L4_MABX_B.Shift_Arithmetic5 |
23158 L4_MABX_B.Shift_Arithmetic6 | L4_MABX_B.Shift_Arithmetic7 |
23159 L4_MABX_B.Shift_Arithmetic8 | L4_MABX_B.Shift_Arithmetic9 |
23160 L4_MABX_B.DataTypeConversion11_i;
23161
23162 /* DataTypeConversion: '<S1006>/Data Type Conversion7' */
23163 L4_MABX_B.DataTypeConversion7_l = L4_MABX_B.BitwiseOperator17;
23164
23165 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator2' */
23166 L4_MABX_B.BitwiseOperator2 = L4_MABX_B.DataTypeConversion7_l &
23167 L4_MABX_P.BitwiseOperator2_BitMask;
23168
23169 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator3' */
23170 L4_MABX_B.BitwiseOperator3 = L4_MABX_B.DataTypeConversion7_l &
23171 L4_MABX_P.BitwiseOperator3_BitMask;
23172
23173 /* ArithShift: '<S1006>/Shift_Arithmetic 3' */
23174 L4_MABX_B.Shift_Arithmetic3_f = L4_MABX_B.BitwiseOperator3 >> 8;
23175
23176 /* DataTypeConversion: '<S1006>/Data Type Conversion5' */
23177 L4_MABX_B.DataTypeConversion5_ji = (uint8_T)L4_MABX_B.Shift_Arithmetic3_f;
23178
23179 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator4' */
23180 L4_MABX_B.BitwiseOperator4 = L4_MABX_B.DataTypeConversion7_l &
23181 L4_MABX_P.BitwiseOperator4_BitMask;
23182
23183 /* ArithShift: '<S1006>/Shift_Arithmetic 4' */
23184 L4_MABX_B.Shift_Arithmetic4_n = L4_MABX_B.BitwiseOperator4 >> 16;
23185
23186 /* DataTypeConversion: '<S1006>/Data Type Conversion8' */
23187 L4_MABX_B.DataTypeConversion8_a3 = (uint8_T)L4_MABX_B.Shift_Arithmetic4_n;
23188
23189 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator5' */
23190 L4_MABX_B.BitwiseOperator5 = L4_MABX_B.DataTypeConversion7_l &
23191 L4_MABX_P.BitwiseOperator5_BitMask;
23192
23193 /* ArithShift: '<S1006>/Shift_Arithmetic 5' */
23194 L4_MABX_B.Shift_Arithmetic5_g = L4_MABX_B.BitwiseOperator5 >> 24;
23195
23196 /* DataTypeConversion: '<S1006>/Data Type Conversion9' */
23197 L4_MABX_B.DataTypeConversion9_a = (uint8_T)L4_MABX_B.Shift_Arithmetic5_g;
23198
23199 /* Sum: '<S1006>/Add2' incorporates:
23200 * Constant: '<S1006>/Constant'
23201 * Constant: '<S1006>/Constant1'
23202 * Constant: '<S1006>/Constant3'
23203 * Constant: '<S1006>/Constant4'
23204 */
23205 L4_MABX_B.Add2_b = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23206 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
23207 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23208 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion2_nc +
23209 L4_MABX_B.BitwiseOperator17_a) + L4_MABX_B.DataTypeConversion11_e)
23210 + L4_MABX_P.Constant3_Value_b) + L4_MABX_P.Constant4_Value_e4) +
23211 L4_MABX_P.Constant_Value_bhk) + L4_MABX_P.Constant1_Value_fj) + (uint8_T)
23212 L4_MABX_B.BitwiseOperator2) + L4_MABX_B.DataTypeConversion5_ji) +
23213 L4_MABX_B.DataTypeConversion8_a3) + L4_MABX_B.DataTypeConversion9_a) +
23214 L4_MABX_B.BitwiseOperator6);
23215
23216 /* ArithShift: '<S1006>/Shift_Arithmetic 6' */
23217 L4_MABX_B.Shift_Arithmetic6_g = (uint8_T)((uint32_T)L4_MABX_B.Add2_b >> 4);
23218
23219 /* Sum: '<S1006>/Add3' */
23220 L4_MABX_B.Add3_b = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_g +
23221 L4_MABX_B.Add2_b);
23222
23223 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator8' */
23224 L4_MABX_B.BitwiseOperator8 = (uint8_T)(L4_MABX_B.Add3_b &
23225 L4_MABX_P.BitwiseOperator8_BitMask);
23226
23227 /* ArithShift: '<S1006>/Shift_Arithmetic 7' */
23228 L4_MABX_B.Shift_Arithmetic7_n = (uint8_T)(L4_MABX_B.BitwiseOperator8 << 4);
23229
23230 /* S-Function (sfix_bitop): '<S1006>/Bitwise Operator7' */
23231 L4_MABX_B.BitwiseOperator7 = (uint8_T)(L4_MABX_B.BitwiseOperator6 |
23232 L4_MABX_B.Shift_Arithmetic7_n);
23233
23234 /* DataTypeConversion: '<S987>/Data Type Conversion1' incorporates:
23235 * Constant: '<S1006>/Constant'
23236 * Constant: '<S1006>/Constant1'
23237 * Constant: '<S1006>/Constant3'
23238 * Constant: '<S1006>/Constant4'
23239 */
23240 L4_MABX_B.DataTypeConversion1_c[0] = L4_MABX_B.DataTypeConversion2_nc;
23241 L4_MABX_B.DataTypeConversion1_c[1] = L4_MABX_B.BitwiseOperator17_a;
23242 L4_MABX_B.DataTypeConversion1_c[2] = L4_MABX_B.DataTypeConversion11_e;
23243 L4_MABX_B.DataTypeConversion1_c[3] = L4_MABX_P.Constant3_Value_b;
23244 L4_MABX_B.DataTypeConversion1_c[4] = L4_MABX_P.Constant4_Value_e4;
23245 L4_MABX_B.DataTypeConversion1_c[5] = L4_MABX_P.Constant_Value_bhk;
23246 L4_MABX_B.DataTypeConversion1_c[6] = L4_MABX_P.Constant1_Value_fj;
23247 L4_MABX_B.DataTypeConversion1_c[7] = L4_MABX_B.BitwiseOperator7;
23248
23249 /* Outputs for Enabled SubSystem: '<S995>/PropB_Bendix_2C2_XPR' incorporates:
23250 * EnablePort: '<S996>/Enable'
23251 */
23252 /* Constant: '<S989>/CPV' */
23253 if (L4_MABX_P.CPV_Value_f) {
23254 /* S-Function (rti_commonblock): '<S996>/S-Function1' */
23255 /* This comment workarounds a code generation problem */
23256
23257 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
23258 {
23259 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23260
23261 Float32 delayTime = 0.0;
23262
23263 /* ... Read status and timestamp info (previous message) */
23264 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]);
23265
23266 /* Convert timestamp */
23267 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed) {
23268 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp =
23269 rtk_dsts_time_to_simtime_convert
23270 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp);
23271 }
23272
23273 /* Messages with timestamp zero have been received in pause/stop state
23274 and must not be handled.
23275 */
23276 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp > 0.0) {
23277 L4_MABX_B.SFunction1_o1_o = (real_T)
23278 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed;
23279 L4_MABX_B.SFunction1_o2_o4 = (real_T)
23280 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp;
23281 L4_MABX_B.SFunction1_o3_c3 = (real_T)
23282 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->deltatime;
23283 L4_MABX_B.SFunction1_o4_l = (real_T)
23284 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->delaytime;
23285 }
23286
23287 /* ... Encode Simulink signals of TX and RM blocks*/
23288 {
23289 rtican_Signal_t CAN_Sgn;
23290
23291 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
23292 /* Add or substract 0.5 in order to round to nearest integer */
23293 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[0] ) +
23294 0.5);
23295 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23296 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23297
23298 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
23299 /* Add or substract 0.5 in order to round to nearest integer */
23300 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[1] ) +
23301 0.5);
23302 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23303 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23304
23305 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
23306 /* Add or substract 0.5 in order to round to nearest integer */
23307 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[2] ) +
23308 0.5);
23309 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23310 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23311
23312 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
23313 /* Add or substract 0.5 in order to round to nearest integer */
23314 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[3] ) +
23315 0.5);
23316 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23317 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23318
23319 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
23320 /* Add or substract 0.5 in order to round to nearest integer */
23321 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[4] ) +
23322 0.5);
23323 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23324 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23325
23326 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
23327 /* Add or substract 0.5 in order to round to nearest integer */
23328 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[5] ) +
23329 0.5);
23330 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23331 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23332
23333 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
23334 /* Add or substract 0.5 in order to round to nearest integer */
23335 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[6] ) +
23336 0.5);
23337 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23338 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23339
23340 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
23341 /* Add or substract 0.5 in order to round to nearest integer */
23342 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c[7] ) +
23343 0.5);
23344 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23345 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23346 }
23347
23348 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23349 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665], 8,
23350 &(CAN_Msg[0]), delayTime);
23351 }
23352 }
23353
23354 /* End of Constant: '<S989>/CPV' */
23355 /* End of Outputs for SubSystem: '<S995>/PropB_Bendix_2C2_XPR' */
23356
23357 /* DataTypeConversion: '<S1003>/Data Type Conversion' */
23358 L4_MABX_B.DataTypeConversion_j = L4_MABX_B.FrontAxleSpeed_a;
23359
23360 /* DataTypeConversion: '<S1003>/Data Type Conversion1' */
23361 L4_MABX_B.DataTypeConversion1_e = L4_MABX_B.SPN1807_SteeringWheelAngle_l;
23362
23363 /* DataTypeConversion: '<S1003>/Data Type Conversion2' */
23364 L4_MABX_B.DataTypeConversion2_e1 = L4_MABX_B.SPN1808_YawRate_f;
23365
23366 /* DataTypeConversion: '<S1003>/Data Type Conversion3' */
23367 L4_MABX_B.DataTypeConversion3_l = L4_MABX_B.SPN1810_LongitudinalAccelerat_k;
23368
23369 /* DataTypeConversion: '<S988>/Data Type Conversion' incorporates:
23370 * Constant: '<S830>/CANT_STD_ODOMETRY_CHANNEL_APV'
23371 */
23372 L4_MABX_B.DataTypeConversion_mxp = (uint8_T)
23373 L4_MABX_P.CANT_STD_ODOMETRY_CHANNEL_APV_V;
23374
23375 /* S-Function (sfix_bitop): '<S1002>/Operator' */
23376 L4_MABX_B.Operator_g = (uint8_T)(L4_MABX_B.DataTypeConversion_mxp &
23377 L4_MABX_P.Operator_BitMask_nu);
23378
23379 /* DataTypeConversion: '<S1002>/DataType' */
23380 L4_MABX_B.DataType = L4_MABX_B.Operator_g;
23381
23382 /* ArithShift: '<S988>/Shift_Arithmetic 4' */
23383 L4_MABX_B.Shift_Arithmetic4 = ldexp(L4_MABX_B.DataType, (-5));
23384
23385 /* DataTypeConversion: '<S988>/Data Type Conversion7' */
23386 L4_MABX_B.DataTypeConversion7_m = (L4_MABX_B.Shift_Arithmetic4 != 0.0);
23387
23388 /* Outputs for Enabled SubSystem: '<S1003>/Std_OdometryData' incorporates:
23389 * EnablePort: '<S1004>/Enable'
23390 */
23391 if (L4_MABX_B.DataTypeConversion7_m) {
23392 /* S-Function (rti_commonblock): '<S1004>/S-Function1' */
23393 /* This comment workarounds a code generation problem */
23394
23395 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
23396 {
23397 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23398
23399 Float32 delayTime = 0.0;
23400
23401 /* ... Read status and timestamp info (previous message) */
23402 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]);
23403
23404 /* Convert timestamp */
23405 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed) {
23406 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp =
23407 rtk_dsts_time_to_simtime_convert
23408 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp);
23409 }
23410
23411 /* Messages with timestamp zero have been received in pause/stop state
23412 and must not be handled.
23413 */
23414 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp > 0.0) {
23415 L4_MABX_B.SFunction1_o1_fy = (real_T)
23416 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed;
23417 L4_MABX_B.SFunction1_o2_d = (real_T)
23418 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp;
23419 L4_MABX_B.SFunction1_o3_c = (real_T)
23420 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->deltatime;
23421 L4_MABX_B.SFunction1_o4_c = (real_T)
23422 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->delaytime;
23423 }
23424
23425 /* ... Encode Simulink signals of TX and RM blocks*/
23426 {
23427 rtican_Signal_t CAN_Sgn;
23428
23429 /* ...... "SPN904_FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
23430 /* Add or substract 0.5 in order to round to nearest integer */
23431 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_j - ( 0 )
23432 ) / 0.00390625 + 0.5);
23433 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23434 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23435 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
23436
23437 /* ...... "SPN1807_SteeringWheelAngle" (16|16, standard signal, unsigned int, little endian) */
23438 /* Add or substract 0.5 in order to round to nearest integer */
23439 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e -
23440 ( -31.374 ) ) / 0.0009765625 + 0.5);
23441 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23442 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23443 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
23444
23445 /* ...... "SPN1808_YawRate" (32|16, standard signal, unsigned int, little endian) */
23446 /* Add or substract 0.5 in order to round to nearest integer */
23447 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_e1 -
23448 ( -3.92 ) ) / 0.0001220703125 + 0.5);
23449 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23450 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23451 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
23452
23453 /* ...... "SPN1810_LongitudinalAcceleration" (48|8, standard signal, unsigned int, little endian) */
23454 /* Add or substract 0.5 in order to round to nearest integer */
23455 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_l -
23456 ( -12.5 ) ) / 0.1 + 0.5);
23457 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23458 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23459 }
23460
23461 /* mask unused bits with '1' */
23462 CAN_Msg[7] |= 0xFF;
23463
23464 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23465 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA], 8, &(CAN_Msg[0]),
23466 delayTime);
23467 }
23468 }
23469
23470 /* End of Outputs for SubSystem: '<S1003>/Std_OdometryData' */
23471
23472 /* S-Function (sfix_bitop): '<S997>/Operator' */
23473 L4_MABX_B.Operator_pw = (uint8_T)(L4_MABX_B.DataTypeConversion_mxp &
23474 L4_MABX_P.Operator_BitMask_is);
23475
23476 /* DataTypeConversion: '<S997>/DataType' */
23477 L4_MABX_B.DataType_k0 = L4_MABX_B.Operator_pw;
23478
23479 /* S-Function (sfix_bitop): '<S998>/Operator' */
23480 L4_MABX_B.Operator_hf = (uint8_T)(L4_MABX_B.DataTypeConversion_mxp &
23481 L4_MABX_P.Operator_BitMask_by);
23482
23483 /* DataTypeConversion: '<S998>/DataType' */
23484 L4_MABX_B.DataType_c = L4_MABX_B.Operator_hf;
23485
23486 /* S-Function (sfix_bitop): '<S999>/Operator' */
23487 L4_MABX_B.Operator_ol = (uint8_T)(L4_MABX_B.DataTypeConversion_mxp &
23488 L4_MABX_P.Operator_BitMask_hx);
23489
23490 /* DataTypeConversion: '<S999>/DataType' */
23491 L4_MABX_B.DataType_l = L4_MABX_B.Operator_ol;
23492
23493 /* S-Function (sfix_bitop): '<S1000>/Operator' */
23494 L4_MABX_B.Operator_lr = (uint8_T)(L4_MABX_B.DataTypeConversion_mxp &
23495 L4_MABX_P.Operator_BitMask_ko);
23496
23497 /* DataTypeConversion: '<S1000>/DataType' */
23498 L4_MABX_B.DataType_m = L4_MABX_B.Operator_lr;
23499
23500 /* S-Function (sfix_bitop): '<S1001>/Operator' */
23501 L4_MABX_B.Operator_hn = (uint8_T)(L4_MABX_B.DataTypeConversion_mxp &
23502 L4_MABX_P.Operator_BitMask_cz);
23503
23504 /* DataTypeConversion: '<S1001>/DataType' */
23505 L4_MABX_B.DataType_h = L4_MABX_B.Operator_hn;
23506
23507 /* DataTypeConversion: '<S988>/Data Type Conversion2' */
23508 L4_MABX_B.DataTypeConversion2_k2 = (L4_MABX_B.DataType_k0 != 0);
23509
23510 /* ArithShift: '<S988>/Shift_Arithmetic ' */
23511 L4_MABX_B.Shift_Arithmetic = ldexp(L4_MABX_B.DataType_c, (-1));
23512
23513 /* DataTypeConversion: '<S988>/Data Type Conversion3' */
23514 L4_MABX_B.DataTypeConversion3_gx = (L4_MABX_B.Shift_Arithmetic != 0.0);
23515
23516 /* ArithShift: '<S988>/Shift_Arithmetic 1' */
23517 L4_MABX_B.Shift_Arithmetic1 = ldexp(L4_MABX_B.DataType_l, (-2));
23518
23519 /* DataTypeConversion: '<S988>/Data Type Conversion4' */
23520 L4_MABX_B.DataTypeConversion4_cn = (L4_MABX_B.Shift_Arithmetic1 != 0.0);
23521
23522 /* ArithShift: '<S988>/Shift_Arithmetic 2' */
23523 L4_MABX_B.Shift_Arithmetic2 = ldexp(L4_MABX_B.DataType_m, (-3));
23524
23525 /* DataTypeConversion: '<S988>/Data Type Conversion5' */
23526 L4_MABX_B.DataTypeConversion5_c0 = (L4_MABX_B.Shift_Arithmetic2 != 0.0);
23527
23528 /* ArithShift: '<S988>/Shift_Arithmetic 3' */
23529 L4_MABX_B.Shift_Arithmetic3 = ldexp(L4_MABX_B.DataType_h, (-4));
23530
23531 /* DataTypeConversion: '<S988>/Data Type Conversion6' */
23532 L4_MABX_B.DataTypeConversion6_g0 = (L4_MABX_B.Shift_Arithmetic3 != 0.0);
23533
23534 /* RelationalOperator: '<S1011>/Operator' */
23535 L4_MABX_B.Operator_ice = (L4_MABX_B.Switch1_k == L4_MABX_B.Width_p);
23536
23537 /* Lookup_n-D: '<S990>/DECEL_GOV_XBR_URGENCY_MPV' */
23538 L4_MABX_B.XBRUrgency = look1_binlcapw(L4_MABX_B.XBRExternalAccelDemand,
23539 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_bp01D,
23540 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_table, 7U);
23541
23542 /* End of Outputs for SubSystem: '<S824>/CAN_TX_20ms' */
23543
23544 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
23545 /* RelationalOperator: '<S389>/CheckHDOP' incorporates:
23546 * Constant: '<S389>/MaximumGoodHDOP'
23547 */
23548 L4_MABX_B.CheckHDOP = (L4_MABX_B.HDOP__f <= L4_MABX_P.MaximumGoodHDOP_Value);
23549
23550 /* Gain: '<S389>/kph2mps' */
23551 L4_MABX_B.kph2mps = L4_MABX_P.kph2mps_Gain_l * L4_MABX_B.FrontAxleSpeed_d;
23552
23553 /* Product: '<S389>/Product' incorporates:
23554 * Constant: '<S389>/lookAheadTime'
23555 */
23556 L4_MABX_B.Product_c = L4_MABX_B.kph2mps * L4_MABX_P.lookAheadTime_Value;
23557
23558 /* Gain: '<S389>/kph2mps1' */
23559 L4_MABX_B.kph2mps1 = L4_MABX_P.kph2mps1_Gain * L4_MABX_B.FrontAxleSpeed_dv;
23560
23561 /* Product: '<S389>/Product1' incorporates:
23562 * Constant: '<S389>/lookAheadTime1'
23563 */
23564 L4_MABX_B.Product1_h = L4_MABX_B.kph2mps1 * L4_MABX_P.lookAheadTime1_Value;
23565
23566 /* UnitDelay: '<S389>/Unit Delay1' */
23567 L4_MABX_B.UnitDelay1 = L4_MABX_DW.UnitDelay1_DSTATE;
23568
23569 /* Constant: '<S390>/InitialHeading' */
23570 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
23571
23572 /* Constant: '<S390>/InitialPosition' */
23573 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
23574
23575 /* Constant: '<S390>/InitialXPosition' */
23576 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
23577
23578 /* Constant: '<S390>/InitialYPosition' */
23579 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
23580
23581 /* Gain: '<S71>/kph2ms' */
23582 L4_MABX_B.kph2ms = L4_MABX_P.kph2ms_Gain * L4_MABX_B.FrontAxleSpeed_dvq;
23583
23584 /* DiscreteIntegrator: '<S390>/LongitudnalPosition' incorporates:
23585 * Constant: '<S389>/Constant'
23586 */
23587 if ((L4_MABX_P.Constant_Value_p > 0.0) &&
23588 (L4_MABX_DW.LongitudnalPosition_PrevResetSt <= 0)) {
23589 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
23590 }
23591
23592 L4_MABX_B.LongitudnalPosition = L4_MABX_P.LongitudnalPosition_gainval *
23593 L4_MABX_B.kph2ms + L4_MABX_DW.LongitudnalPosition_DSTATE;
23594
23595 /* End of DiscreteIntegrator: '<S390>/LongitudnalPosition' */
23596
23597 /* Trigonometry: '<S390>/Trigonometric Function' */
23598 L4_MABX_B.TrigonometricFunction = sin(L4_MABX_B.kph2ms);
23599
23600 /* Trigonometry: '<S390>/Trigonometric Function1' */
23601 L4_MABX_B.TrigonometricFunction1 = cos(L4_MABX_B.kph2ms);
23602
23603 /* DiscreteIntegrator: '<S390>/VehHeading' incorporates:
23604 * Constant: '<S390>/reset'
23605 */
23606 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.VehHeading_PrevResetState <=
23607 0)) {
23608 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
23609 }
23610
23611 L4_MABX_B.VehHeading = L4_MABX_P.VehHeading_gainval *
23612 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_DW.VehHeading_DSTATE;
23613
23614 /* End of DiscreteIntegrator: '<S390>/VehHeading' */
23615
23616 /* DiscreteIntegrator: '<S390>/XPosition' incorporates:
23617 * Constant: '<S390>/reset'
23618 */
23619 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.XPosition_PrevResetState <= 0))
23620 {
23621 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
23622 }
23623
23624 L4_MABX_B.XPosition = L4_MABX_P.XPosition_gainval *
23625 L4_MABX_B.TrigonometricFunction1 + L4_MABX_DW.XPosition_DSTATE;
23626
23627 /* End of DiscreteIntegrator: '<S390>/XPosition' */
23628
23629 /* DiscreteIntegrator: '<S390>/YPosition' incorporates:
23630 * Constant: '<S390>/reset'
23631 */
23632 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.YPosition_PrevResetState <= 0))
23633 {
23634 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
23635 }
23636
23637 L4_MABX_B.YPosition = L4_MABX_P.YPosition_gainval *
23638 L4_MABX_B.TrigonometricFunction + L4_MABX_DW.YPosition_DSTATE;
23639
23640 /* End of DiscreteIntegrator: '<S390>/YPosition' */
23641 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
23642
23643 /* UnitDelay: '<S3>/Unit_Delay' */
23644 L4_MABX_B.S = L4_MABX_DW.Unit_Delay_48_DSTATE;
23645 L4_MABX_B.B = L4_MABX_DW.Unit_Delay_49_DSTATE;
23646 L4_MABX_B.X = L4_MABX_DW.Unit_Delay_50_DSTATE;
23647 L4_MABX_B.Y = L4_MABX_DW.Unit_Delay_51_DSTATE;
23648 L4_MABX_B.pathCurveOffset = L4_MABX_DW.Unit_Delay_52_DSTATE;
23649 L4_MABX_B.S_b = L4_MABX_DW.Unit_Delay_53_DSTATE;
23650 L4_MABX_B.distanceSpdTarget = L4_MABX_DW.Unit_Delay_54_DSTATE;
23651 L4_MABX_B.state = L4_MABX_DW.Unit_Delay_55_DSTATE;
23652 L4_MABX_B.lastWayPointIdx = L4_MABX_DW.Unit_Delay_56_DSTATE;
23653 L4_MABX_B.crossed = L4_MABX_DW.Unit_Delay_57_DSTATE;
23654 L4_MABX_B.minimumDist = L4_MABX_DW.Unit_Delay_58_DSTATE;
23655 L4_MABX_B.SrefOnthisPath = L4_MABX_DW.Unit_Delay_59_DSTATE;
23656 L4_MABX_B.StartDist = L4_MABX_DW.Unit_Delay_60_DSTATE;
23657 L4_MABX_B.minDistIdx = L4_MABX_DW.Unit_Delay_61_DSTATE;
23658 L4_MABX_B.pathS = L4_MABX_DW.Unit_Delay_62_DSTATE;
23659 L4_MABX_B.pathLat = L4_MABX_DW.Unit_Delay_63_DSTATE;
23660 L4_MABX_B.pathLong = L4_MABX_DW.Unit_Delay_64_DSTATE;
23661 L4_MABX_B.pathSteeringAngle = L4_MABX_DW.Unit_Delay_65_DSTATE;
23662 L4_MABX_B.pathSpdLimit = L4_MABX_DW.Unit_Delay_66_DSTATE;
23663 L4_MABX_B.distance = L4_MABX_DW.Unit_Delay_67_DSTATE;
23664 L4_MABX_B.idx = L4_MABX_DW.Unit_Delay_68_DSTATE;
23665 L4_MABX_B.wpidx = L4_MABX_DW.Unit_Delay_69_DSTATE;
23666 L4_MABX_B.pathOffset = L4_MABX_DW.Unit_Delay_70_DSTATE;
23667 L4_MABX_B.sRefDistance = L4_MABX_DW.Unit_Delay_71_DSTATE;
23668 L4_MABX_B.refDistance = L4_MABX_DW.Unit_Delay_72_DSTATE;
23669 L4_MABX_B.wpIdx = L4_MABX_DW.Unit_Delay_73_DSTATE;
23670 L4_MABX_B.previewSteeringAngle_l = L4_MABX_DW.Unit_Delay_74_DSTATE;
23671 L4_MABX_B.desHeading = L4_MABX_DW.Unit_Delay_75_DSTATE;
23672 L4_MABX_B.actPreviewDist = L4_MABX_DW.Unit_Delay_76_DSTATE;
23673 L4_MABX_B.desPreviewDist = L4_MABX_DW.Unit_Delay_77_DSTATE;
23674 L4_MABX_B.mappingSearchCase = L4_MABX_DW.Unit_Delay_78_DSTATE;
23675
23676 /* user code (Output function Trailer for TID1) */
23677
23678 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
23679 /* EventChannel: 0 */
23680 if (tid == 0) {
23681 DSXCP_service(0);
23682 }
23683
23684 /* If subsystem generates rate grouping Output functions,
23685 * when tid is used in Output function for one rate,
23686 * all Output functions include tid as a local variable.
23687 * As result, some Output functions may have unused tid.
23688 */
23689 UNUSED_PARAMETER(tid);
23690}
23691
23692/* Model update function for TID1 */
23693void L4_MABX_update1(void) /* Sample time: [0.02s, 0.0s] */
23694{
23695 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
23696 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' incorporates:
23697 * Constant: '<S389>/Constant2'
23698 */
23699 L4_MABX_DW.TmpRTBAtSignalConversion1Inport = L4_MABX_P.Constant2_Value_a;
23700
23701 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' incorporates:
23702 * Constant: '<S389>/Constant13'
23703 */
23704 L4_MABX_DW.TmpRTBAtSignalConversion3Inport = L4_MABX_P.Constant13_Value;
23705
23706 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' incorporates:
23707 * Constant: '<S389>/Constant14'
23708 */
23709 L4_MABX_DW.TmpRTBAtSignalConversion2Inport = L4_MABX_P.Constant14_Value;
23710
23711 /* Update for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' incorporates:
23712 * Constant: '<S389>/Constant17'
23713 */
23714 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 = L4_MABX_P.Constant17_Value;
23715
23716 /* Update for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' incorporates:
23717 * Constant: '<S389>/Constant1'
23718 */
23719 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ = L4_MABX_P.Constant1_Value_g;
23720
23721 /* Update for RateTransition: '<S278>/TmpRTBAtAdd2Inport2' incorporates:
23722 * Constant: '<S389>/Constant18'
23723 */
23724 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 = L4_MABX_P.Constant18_Value;
23725
23726 /* End of Update for SubSystem: '<S65>/Task_10ms' */
23727
23728 /* Update for Atomic SubSystem: '<S824>/CAN_TX_20ms' */
23729
23730 /* Update for UnitDelay: '<S986>/Unit_Delay' */
23731 L4_MABX_DW.Unit_Delay_DSTATE_f2 = L4_MABX_B.TmpRTBAtUnit_DelayInport1;
23732
23733 /* Update for UnitDelay: '<S1009>/Unit_Delay' */
23734 L4_MABX_DW.Unit_Delay_DSTATE_pd = L4_MABX_B.Operator_ice;
23735
23736 /* Update for UnitDelay: '<S1010>/Unit Delay' */
23737 L4_MABX_DW.UnitDelay_DSTATE_is = L4_MABX_B.Switch1_k;
23738
23739 /* End of Update for SubSystem: '<S824>/CAN_TX_20ms' */
23740
23741 /* Update for Atomic SubSystem: '<S65>/Task_20ms' */
23742 /* Update for UnitDelay: '<S389>/Unit Delay1' */
23743 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_B.LongitudnalPosition;
23744
23745 /* Update for DiscreteIntegrator: '<S390>/LongitudnalPosition' incorporates:
23746 * Constant: '<S389>/Constant'
23747 */
23748 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_P.LongitudnalPosition_gainval *
23749 L4_MABX_B.kph2ms + L4_MABX_B.LongitudnalPosition;
23750 if (L4_MABX_P.Constant_Value_p > 0.0) {
23751 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 1;
23752 } else if (L4_MABX_P.Constant_Value_p < 0.0) {
23753 L4_MABX_DW.LongitudnalPosition_PrevResetSt = -1;
23754 } else if (L4_MABX_P.Constant_Value_p == 0.0) {
23755 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 0;
23756 } else {
23757 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
23758 }
23759
23760 /* End of Update for DiscreteIntegrator: '<S390>/LongitudnalPosition' */
23761
23762 /* Update for DiscreteIntegrator: '<S390>/VehHeading' incorporates:
23763 * Constant: '<S390>/reset'
23764 * DiscreteIntegrator: '<S390>/XPosition'
23765 */
23766 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_P.VehHeading_gainval *
23767 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_B.VehHeading;
23768 if (L4_MABX_P.reset_Value > 0.0) {
23769 L4_MABX_DW.VehHeading_PrevResetState = 1;
23770 L4_MABX_DW.XPosition_PrevResetState = 1;
23771 } else {
23772 if (L4_MABX_P.reset_Value < 0.0) {
23773 L4_MABX_DW.VehHeading_PrevResetState = -1;
23774 } else if (L4_MABX_P.reset_Value == 0.0) {
23775 L4_MABX_DW.VehHeading_PrevResetState = 0;
23776 } else {
23777 L4_MABX_DW.VehHeading_PrevResetState = 2;
23778 }
23779
23780 if (L4_MABX_P.reset_Value < 0.0) {
23781 L4_MABX_DW.XPosition_PrevResetState = -1;
23782 } else if (L4_MABX_P.reset_Value == 0.0) {
23783 L4_MABX_DW.XPosition_PrevResetState = 0;
23784 } else {
23785 L4_MABX_DW.XPosition_PrevResetState = 2;
23786 }
23787 }
23788
23789 /* End of Update for DiscreteIntegrator: '<S390>/VehHeading' */
23790
23791 /* Update for DiscreteIntegrator: '<S390>/XPosition' */
23792 L4_MABX_DW.XPosition_DSTATE = L4_MABX_P.XPosition_gainval *
23793 L4_MABX_B.TrigonometricFunction1 + L4_MABX_B.XPosition;
23794
23795 /* Update for DiscreteIntegrator: '<S390>/YPosition' incorporates:
23796 * Constant: '<S390>/reset'
23797 */
23798 L4_MABX_DW.YPosition_DSTATE = L4_MABX_P.YPosition_gainval *
23799 L4_MABX_B.TrigonometricFunction + L4_MABX_B.YPosition;
23800 if (L4_MABX_P.reset_Value > 0.0) {
23801 L4_MABX_DW.YPosition_PrevResetState = 1;
23802 } else if (L4_MABX_P.reset_Value < 0.0) {
23803 L4_MABX_DW.YPosition_PrevResetState = -1;
23804 } else if (L4_MABX_P.reset_Value == 0.0) {
23805 L4_MABX_DW.YPosition_PrevResetState = 0;
23806 } else {
23807 L4_MABX_DW.YPosition_PrevResetState = 2;
23808 }
23809
23810 /* End of Update for DiscreteIntegrator: '<S390>/YPosition' */
23811 /* End of Update for SubSystem: '<S65>/Task_20ms' */
23812
23813 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
23814 * Constant: '<S389>/Constant1'
23815 * Constant: '<S389>/Constant10'
23816 * Constant: '<S389>/Constant11'
23817 * Constant: '<S389>/Constant12'
23818 * Constant: '<S389>/Constant13'
23819 * Constant: '<S389>/Constant14'
23820 * Constant: '<S389>/Constant15'
23821 * Constant: '<S389>/Constant16'
23822 * Constant: '<S389>/Constant17'
23823 * Constant: '<S389>/Constant18'
23824 * Constant: '<S389>/Constant19'
23825 * Constant: '<S389>/Constant2'
23826 * Constant: '<S389>/Constant20'
23827 * Constant: '<S389>/Constant21'
23828 * Constant: '<S389>/Constant22'
23829 * Constant: '<S389>/Constant23'
23830 * Constant: '<S389>/Constant24'
23831 * Constant: '<S389>/Constant25'
23832 * Constant: '<S389>/Constant3'
23833 * Constant: '<S389>/Constant4'
23834 * Constant: '<S389>/Constant5'
23835 * Constant: '<S389>/Constant6'
23836 * Constant: '<S389>/Constant7'
23837 * Constant: '<S389>/Constant8'
23838 * Constant: '<S389>/Constant9'
23839 */
23840 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_B.LongitudnalPosition;
23841 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_B.VehHeading;
23842 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_B.XPosition;
23843 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_B.YPosition;
23844 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Constant1_Value_g;
23845 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_B.UnitDelay1;
23846 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Constant2_Value_a;
23847 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Constant3_Value_l;
23848 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Constant4_Value_m;
23849 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Constant5_Value_b;
23850 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Constant10_Value_h;
23851 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Constant25_Value;
23852 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Constant6_Value_e;
23853 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Constant7_Value;
23854 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Constant8_Value;
23855 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Constant9_Value_m;
23856 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Constant11_Value;
23857 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Constant12_Value;
23858 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Constant13_Value;
23859 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Constant14_Value;
23860 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Constant19_Value_m;
23861 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Constant16_Value;
23862 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Constant21_Value_g;
23863 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Constant22_Value;
23864 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Constant15_Value;
23865 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Constant20_Value_i;
23866 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Constant17_Value;
23867 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Constant18_Value;
23868 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Constant23_Value;
23869 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_B.Product_c;
23870 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Constant24_Value;
23871}
23872
23873/* Model output function for TID2 */
23874void L4_MABX_output2(void) /* Sample time: [0.05s, 0.0s] */
23875{
23876 int_T tid = 2;
23877
23878 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_50ms' */
23879
23880 /* Outputs for Enabled SubSystem: '<S1029>/CCVS1_E3' incorporates:
23881 * EnablePort: '<S1031>/Enable'
23882 */
23883 /* Constant: '<S833>/enable_CAN_TX_CCVS1_CAN3' */
23884 if (L4_MABX_P.enable_CAN_TX_CCVS1_CAN3_Value > 0.0) {
23885 /* S-Function (rti_commonblock): '<S1031>/S-Function1' */
23886 /* This comment workarounds a code generation problem */
23887
23888 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
23889 {
23890 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23891
23892 Float32 delayTime = 0.0;
23893
23894 /* ... Read status and timestamp info (previous message) */
23895 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]);
23896
23897 /* Convert timestamp */
23898 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed) {
23899 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp =
23900 rtk_dsts_time_to_simtime_convert
23901 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp);
23902 }
23903
23904 /* Messages with timestamp zero have been received in pause/stop state
23905 and must not be handled.
23906 */
23907 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp > 0.0) {
23908 L4_MABX_B.SFunction1_o1_hr = (real_T)
23909 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed;
23910 L4_MABX_B.SFunction1_o2_cn = (real_T)
23911 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp;
23912 L4_MABX_B.SFunction1_o3_i = (real_T)
23913 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->deltatime;
23914 L4_MABX_B.SFunction1_o4_e = (real_T)
23915 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->delaytime;
23916 }
23917
23918 /* ... Encode Simulink signals of TX and RM blocks*/
23919 {
23920 rtican_Signal_t CAN_Sgn;
23921
23922 /* ...... "SPN69_TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
23923 /* Add or substract 0.5 in order to round to nearest integer */
23924 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch ) + 0.5);
23925 CAN_Sgn.UnsignedSgn &= 0x00000003;
23926 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23927
23928 /* ...... "SPN70_ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
23929 /* Add or substract 0.5 in order to round to nearest integer */
23930 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch ) + 0.5);
23931 CAN_Sgn.UnsignedSgn &= 0x00000003;
23932 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23933 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23934
23935 /* ...... "SPN1633_CruiseControlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
23936 /* Add or substract 0.5 in order to round to nearest integer */
23937 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch ) +
23938 0.5);
23939 CAN_Sgn.UnsignedSgn &= 0x00000003;
23940 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23941 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23942
23943 /* ...... "SPN3807_ParkBrakeReleaseInhReq" (6|2, standard signal, unsigned int, little endian) */
23944 /* Add or substract 0.5 in order to round to nearest integer */
23945 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq )
23946 + 0.5);
23947 CAN_Sgn.UnsignedSgn &= 0x00000003;
23948 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23949 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23950
23951 /* ...... "SPN84_WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
23952 /* Add or substract 0.5 in order to round to nearest integer */
23953 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_b - (
23954 0 ) ) / 0.00390625 + 0.5);
23955 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23956 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23957 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
23958
23959 /* ...... "SPN595_CruiseControlActive" (24|2, standard signal, unsigned int, little endian) */
23960 /* Add or substract 0.5 in order to round to nearest integer */
23961 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive ) + 0.5);
23962 CAN_Sgn.UnsignedSgn &= 0x00000003;
23963 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23964
23965 /* ...... "SPN596_CruiseControlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
23966 /* Add or substract 0.5 in order to round to nearest integer */
23967 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_b ) +
23968 0.5);
23969 CAN_Sgn.UnsignedSgn &= 0x00000003;
23970 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23971 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23972
23973 /* ...... "SPN597_BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
23974 /* Add or substract 0.5 in order to round to nearest integer */
23975 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_i ) + 0.5);
23976 CAN_Sgn.UnsignedSgn &= 0x00000003;
23977 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23978 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23979
23980 /* ...... "SPN598_ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
23981 /* Add or substract 0.5 in order to round to nearest integer */
23982 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch ) + 0.5);
23983 CAN_Sgn.UnsignedSgn &= 0x00000003;
23984 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23985 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23986
23987 /* ...... "SPN599_CruiseControlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
23988 /* Add or substract 0.5 in order to round to nearest integer */
23989 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch ) + 0.5);
23990 CAN_Sgn.UnsignedSgn &= 0x00000003;
23991 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23992
23993 /* ...... "SPN600_CruiseControlCoastDecelSw" (34|2, standard signal, unsigned int, little endian) */
23994 /* Add or substract 0.5 in order to round to nearest integer */
23995 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch ) +
23996 0.5);
23997 CAN_Sgn.UnsignedSgn &= 0x00000003;
23998 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23999 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24000
24001 /* ...... "SPN601_CruiseControlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
24002 /* Add or substract 0.5 in order to round to nearest integer */
24003 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch ) +
24004 0.5);
24005 CAN_Sgn.UnsignedSgn &= 0x00000003;
24006 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24007 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24008
24009 /* ...... "SPN602_CruiseControlAccelerateSw" (38|2, standard signal, unsigned int, little endian) */
24010 /* Add or substract 0.5 in order to round to nearest integer */
24011 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch )
24012 + 0.5);
24013 CAN_Sgn.UnsignedSgn &= 0x00000003;
24014 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24015 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24016
24017 /* ...... "SPN86_CruiseControlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
24018 /* Add or substract 0.5 in order to round to nearest integer */
24019 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed ) + 0.5);
24020 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24021 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24022
24023 /* ...... "SPN976_PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
24024 /* Add or substract 0.5 in order to round to nearest integer */
24025 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState ) + 0.5);
24026 CAN_Sgn.UnsignedSgn &= 0x0000001F;
24027 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24028
24029 /* ...... "SPN527_CruiseControlStates" (53|3, standard signal, unsigned int, little endian) */
24030 /* Add or substract 0.5 in order to round to nearest integer */
24031 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates ) + 0.5);
24032 CAN_Sgn.UnsignedSgn &= 0x00000007;
24033 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
24034 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24035
24036 /* ...... "SPN968_EngIdleIncrementSw" (56|2, standard signal, unsigned int, little endian) */
24037 /* Add or substract 0.5 in order to round to nearest integer */
24038 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch ) +
24039 0.5);
24040 CAN_Sgn.UnsignedSgn &= 0x00000003;
24041 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24042
24043 /* ...... "SPN967_EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
24044 /* Add or substract 0.5 in order to round to nearest integer */
24045 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch ) +
24046 0.5);
24047 CAN_Sgn.UnsignedSgn &= 0x00000003;
24048 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24049 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24050
24051 /* ...... "SPN966_EngDiagTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
24052 /* Add or substract 0.5 in order to round to nearest integer */
24053 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch ) + 0.5);
24054 CAN_Sgn.UnsignedSgn &= 0x00000003;
24055 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24056 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24057
24058 /* ...... "SPN1237_EngShutdownOvrdSwitch" (62|2, standard signal, unsigned int, little endian) */
24059 /* Add or substract 0.5 in order to round to nearest integer */
24060 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch )
24061 + 0.5);
24062 CAN_Sgn.UnsignedSgn &= 0x00000003;
24063 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24064 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24065 }
24066
24067 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24068 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3], 8,
24069 &(CAN_Msg[0]), delayTime);
24070 }
24071 }
24072
24073 /* End of Constant: '<S833>/enable_CAN_TX_CCVS1_CAN3' */
24074 /* End of Outputs for SubSystem: '<S1029>/CCVS1_E3' */
24075
24076 /* Outputs for Enabled SubSystem: '<S1030>/TC1_03_05' incorporates:
24077 * EnablePort: '<S1032>/Enable'
24078 */
24079 /* Constant: '<S1030>/CANT_TC1_03_05_APV' */
24080 if (L4_MABX_P.CANT_TC1_03_05_APV_Value) {
24081 /* S-Function (rti_commonblock): '<S1032>/S-Function1' */
24082 /* This comment workarounds a code generation problem */
24083
24084 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
24085 {
24086 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24087
24088 Float32 delayTime = 0.0;
24089
24090 /* ... Read status and timestamp info (previous message) */
24091 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]);
24092
24093 /* Convert timestamp */
24094 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed) {
24095 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp =
24096 rtk_dsts_time_to_simtime_convert
24097 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp);
24098 }
24099
24100 /* Messages with timestamp zero have been received in pause/stop state
24101 and must not be handled.
24102 */
24103 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp > 0.0) {
24104 L4_MABX_B.SFunction1_o1_hy = (real_T)
24105 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed;
24106 L4_MABX_B.SFunction1_o2_o = (real_T)
24107 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp;
24108 L4_MABX_B.SFunction1_o3_p = (real_T)
24109 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->deltatime;
24110 L4_MABX_B.SFunction1_o4_a = (real_T)
24111 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->delaytime;
24112 }
24113
24114 /* ... Encode Simulink signals of TX and RM blocks*/
24115 {
24116 rtican_Signal_t CAN_Sgn;
24117
24118 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
24119 /* Add or substract 0.5 in order to round to nearest integer */
24120 CAN_Sgn.UnsignedSgn = (UInt32)
24121 (( L4_MABX_B.SPN681_TransGearShiftInhibitReq ) + 0.5);
24122 CAN_Sgn.UnsignedSgn &= 0x00000003;
24123 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24124
24125 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
24126 /* Add or substract 0.5 in order to round to nearest integer */
24127 CAN_Sgn.UnsignedSgn = (UInt32)
24128 (( L4_MABX_B.SPN682_TransTrqConvLockupDisReq ) + 0.5);
24129 CAN_Sgn.UnsignedSgn &= 0x00000003;
24130 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24131 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24132
24133 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
24134 /* Add or substract 0.5 in order to round to nearest integer */
24135 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN683_DisengageDrivelineReq
24136 ) + 0.5);
24137 CAN_Sgn.UnsignedSgn &= 0x00000003;
24138 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24139 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24140
24141 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
24142 /* Add or substract 0.5 in order to round to nearest integer */
24143 CAN_Sgn.UnsignedSgn = (UInt32)
24144 (( L4_MABX_B.SPN4242_TransRevGearShiftInhibR ) + 0.5);
24145 CAN_Sgn.UnsignedSgn &= 0x00000003;
24146 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24147 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24148
24149 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
24150 /* Add or substract 0.5 in order to round to nearest integer */
24151 CAN_Sgn.UnsignedSgn = (UInt32)
24152 (( L4_MABX_B.SPN684_RequestedPercClutchSlip - ( 0 ) ) / 0.4 + 0.5);
24153 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24154 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24155
24156 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
24157 /* Add or substract 0.5 in order to round to nearest integer */
24158 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SPN525_TransRequestedGear - (
24159 -125 ) + 0.5);
24160 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24161 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24162
24163 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
24164 /* Add or substract 0.5 in order to round to nearest integer */
24165 CAN_Sgn.UnsignedSgn = (UInt32)
24166 (( L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 ) + 0.5);
24167 CAN_Sgn.UnsignedSgn &= 0x00000003;
24168 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24169
24170 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
24171 /* Add or substract 0.5 in order to round to nearest integer */
24172 CAN_Sgn.UnsignedSgn = (UInt32)
24173 (( L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 ) + 0.5);
24174 CAN_Sgn.UnsignedSgn &= 0x00000003;
24175 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24176 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24177
24178 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
24179 /* Add or substract 0.5 in order to round to nearest integer */
24180 CAN_Sgn.UnsignedSgn = (UInt32)
24181 (( L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 ) + 0.5);
24182 CAN_Sgn.UnsignedSgn &= 0x00000003;
24183 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24184 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24185
24186 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
24187 /* Add or substract 0.5 in order to round to nearest integer */
24188 CAN_Sgn.UnsignedSgn = (UInt32)
24189 (( L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 ) + 0.5);
24190 CAN_Sgn.UnsignedSgn &= 0x00000003;
24191 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24192 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24193
24194 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
24195 /* Add or substract 0.5 in order to round to nearest integer */
24196 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN689_DisengageDiffLockRqC )
24197 + 0.5);
24198 CAN_Sgn.UnsignedSgn &= 0x00000003;
24199 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24200
24201 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
24202 /* Add or substract 0.5 in order to round to nearest integer */
24203 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN690_DisengageDiffLockRqCF
24204 ) + 0.5);
24205 CAN_Sgn.UnsignedSgn &= 0x00000003;
24206 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24207 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24208
24209 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
24210 /* Add or substract 0.5 in order to round to nearest integer */
24211 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN691_DisengageDiffLockRqCR
24212 ) + 0.5);
24213 CAN_Sgn.UnsignedSgn &= 0x00000003;
24214 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24215 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24216
24217 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
24218 /* Add or substract 0.5 in order to round to nearest integer */
24219 CAN_Sgn.UnsignedSgn = (UInt32)
24220 (( L4_MABX_B.SPN5762_TransLoadRedInhibitRq ) + 0.5);
24221 CAN_Sgn.UnsignedSgn &= 0x00000003;
24222 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24223 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24224
24225 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
24226 /* Add or substract 0.5 in order to round to nearest integer */
24227 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1852_TransmissionMode1 )
24228 + 0.5);
24229 CAN_Sgn.UnsignedSgn &= 0x00000003;
24230 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24231
24232 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
24233 /* Add or substract 0.5 in order to round to nearest integer */
24234 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1853_TransmissionMode2 )
24235 + 0.5);
24236 CAN_Sgn.UnsignedSgn &= 0x00000003;
24237 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24238 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24239
24240 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
24241 /* Add or substract 0.5 in order to round to nearest integer */
24242 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1854_TransmissionMode3 )
24243 + 0.5);
24244 CAN_Sgn.UnsignedSgn &= 0x00000003;
24245 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24246 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24247
24248 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
24249 /* Add or substract 0.5 in order to round to nearest integer */
24250 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1855_TransmissionMode4 )
24251 + 0.5);
24252 CAN_Sgn.UnsignedSgn &= 0x00000003;
24253 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24254 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24255
24256 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
24257 /* Add or substract 0.5 in order to round to nearest integer */
24258 CAN_Sgn.UnsignedSgn = (UInt32)
24259 (( L4_MABX_B.SPN7695_TransAutoNeutralRequest ) + 0.5);
24260 CAN_Sgn.UnsignedSgn &= 0x00000003;
24261 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24262
24263 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
24264 /* Add or substract 0.5 in order to round to nearest integer */
24265 CAN_Sgn.UnsignedSgn = (UInt32)
24266 (( L4_MABX_B.SPN4255_TransRequestedLaunchGea ) + 0.5);
24267 CAN_Sgn.UnsignedSgn &= 0x0000000F;
24268 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24269 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24270
24271 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
24272 /* Add or substract 0.5 in order to round to nearest integer */
24273 CAN_Sgn.UnsignedSgn = (UInt32)
24274 (( L4_MABX_B.SPN2985_TransShiftSelDispModeSw ) + 0.5);
24275 CAN_Sgn.UnsignedSgn &= 0x00000003;
24276 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24277 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24278
24279 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
24280 /* Add or substract 0.5 in order to round to nearest integer */
24281 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4246_TransmissionMode5 )
24282 + 0.5);
24283 CAN_Sgn.UnsignedSgn &= 0x00000003;
24284 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24285
24286 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
24287 /* Add or substract 0.5 in order to round to nearest integer */
24288 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4247_TransmissionMode6 )
24289 + 0.5);
24290 CAN_Sgn.UnsignedSgn &= 0x00000003;
24291 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24292 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24293
24294 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
24295 /* Add or substract 0.5 in order to round to nearest integer */
24296 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4248_TransmissionMode7 )
24297 + 0.5);
24298 CAN_Sgn.UnsignedSgn &= 0x00000003;
24299 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24300 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24301
24302 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
24303 /* Add or substract 0.5 in order to round to nearest integer */
24304 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4249_TransmissionMode8 )
24305 + 0.5);
24306 CAN_Sgn.UnsignedSgn &= 0x00000003;
24307 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24308 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24309 }
24310
24311 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24312 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305], 8,
24313 &(CAN_Msg[0]), delayTime);
24314 }
24315 }
24316
24317 /* End of Constant: '<S1030>/CANT_TC1_03_05_APV' */
24318 /* End of Outputs for SubSystem: '<S1030>/TC1_03_05' */
24319
24320 /* End of Outputs for SubSystem: '<S824>/CAN_TX_50ms' */
24321 /* user code (Output function Trailer for TID2) */
24322
24323 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
24324 /* EventChannel: 0 */
24325 if (tid == 0) {
24326 DSXCP_service(0);
24327 }
24328
24329 /* If subsystem generates rate grouping Output functions,
24330 * when tid is used in Output function for one rate,
24331 * all Output functions include tid as a local variable.
24332 * As result, some Output functions may have unused tid.
24333 */
24334 UNUSED_PARAMETER(tid);
24335}
24336
24337/* Model update function for TID2 */
24338void L4_MABX_update2(void) /* Sample time: [0.05s, 0.0s] */
24339{
24340 /* (no update code required) */
24341}
24342
24343/* Model output function for TID3 */
24344void L4_MABX_output3(void) /* Sample time: [0.1s, 0.0s] */
24345{
24346 int_T tid = 3;
24347 uint16_T tmp;
24348 uint32_T tmp_0;
24349 uint8_T tmp_1;
24350 real_T tmp_2;
24351
24352 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_100ms' */
24353
24354 /* DataTypeConversion: '<S861>/Data Type Conversion' incorporates:
24355 * Constant: '<S828>/PROPB_XPR_INHIBIT_PARK_MANUAL_APV'
24356 */
24357 L4_MABX_B.DataTypeConversion_g1 = (uint8_T)
24358 L4_MABX_P.PROPB_XPR_INHIBIT_PARK_MANUAL_A;
24359
24360 /* S-Function (sfix_bitop): '<S893>/Operator' */
24361 L4_MABX_B.Operator_eg = (uint8_T)(L4_MABX_B.DataTypeConversion_g1 &
24362 L4_MABX_P.Operator_BitMask_n);
24363
24364 /* DataTypeConversion: '<S893>/DataType' */
24365 L4_MABX_B.DataType_ei = L4_MABX_B.Operator_eg;
24366
24367 /* DataTypeConversion: '<S861>/Data Type Conversion2' incorporates:
24368 * Constant: '<S828>/PROPB_XPR_INHIBIT_UNPARK_MANUAL_APV'
24369 */
24370 L4_MABX_B.DataTypeConversion2_n1 = (uint8_T)
24371 L4_MABX_P.PROPB_XPR_INHIBIT_UNPARK_MANUAL;
24372
24373 /* S-Function (sfix_bitop): '<S895>/Operator' */
24374 L4_MABX_B.Operator_li = (uint8_T)(L4_MABX_B.DataTypeConversion2_n1 &
24375 L4_MABX_P.Operator_BitMask_j4);
24376
24377 /* DataTypeConversion: '<S895>/DataType' */
24378 L4_MABX_B.DataType_lp = L4_MABX_B.Operator_li;
24379
24380 /* ArithShift: '<S861>/Shift_Arithmetic ' */
24381 L4_MABX_B.Shift_Arithmetic_nw = (uint8_T)(L4_MABX_B.DataType_lp << 2);
24382
24383 /* DataTypeConversion: '<S861>/Data Type Conversion4' incorporates:
24384 * Constant: '<S828>/PROPB_XPR_PARK_MANUAL_APV'
24385 */
24386 L4_MABX_B.DataTypeConversion4_c = (uint8_T)
24387 L4_MABX_P.PROPB_XPR_PARK_MANUAL_APV_Value;
24388
24389 /* S-Function (sfix_bitop): '<S896>/Operator' */
24390 L4_MABX_B.Operator_pa = (uint8_T)(L4_MABX_B.DataTypeConversion4_c &
24391 L4_MABX_P.Operator_BitMask_bx);
24392
24393 /* DataTypeConversion: '<S896>/DataType' */
24394 L4_MABX_B.DataType_gr = L4_MABX_B.Operator_pa;
24395
24396 /* ArithShift: '<S861>/Shift_Arithmetic 1' */
24397 L4_MABX_B.Shift_Arithmetic1_cg = (uint8_T)(L4_MABX_B.DataType_gr << 4);
24398
24399 /* DataTypeConversion: '<S861>/Data Type Conversion5' incorporates:
24400 * Constant: '<S828>/PROPB_XPR_UNPARK_MANUAL_APV'
24401 */
24402 L4_MABX_B.DataTypeConversion5_f = (uint8_T)
24403 L4_MABX_P.PROPB_XPR_UNPARK_MANUAL_APV_Val;
24404
24405 /* S-Function (sfix_bitop): '<S894>/Operator' */
24406 L4_MABX_B.Operator_du = (uint8_T)(L4_MABX_B.DataTypeConversion5_f &
24407 L4_MABX_P.Operator_BitMask_p);
24408
24409 /* DataTypeConversion: '<S894>/DataType' */
24410 L4_MABX_B.DataType_dm = L4_MABX_B.Operator_du;
24411
24412 /* ArithShift: '<S861>/Shift_Arithmetic 2' */
24413 L4_MABX_B.Shift_Arithmetic2_l = (uint8_T)(L4_MABX_B.DataType_dm << 6);
24414
24415 /* S-Function (sfix_bitop): '<S901>/Operator' */
24416 L4_MABX_B.Operator_hg = (uint8_T)(L4_MABX_B.DataType_ei |
24417 L4_MABX_B.Shift_Arithmetic_nw | L4_MABX_B.Shift_Arithmetic1_cg |
24418 L4_MABX_B.Shift_Arithmetic2_l);
24419
24420 /* DataTypeConversion: '<S901>/DataType' */
24421 L4_MABX_B.DataType_k1 = L4_MABX_B.Operator_hg;
24422
24423 /* Outputs for Enabled SubSystem: '<S861>/Rolling_15_counter' incorporates:
24424 * EnablePort: '<S903>/Enable'
24425 */
24426 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
24427 /* UnitDelay: '<S903>/Unit_Delay' */
24428 L4_MABX_B.Unit_Delay = L4_MABX_DW.Unit_Delay_DSTATE;
24429
24430 /* Sum: '<S911>/FixPt Sum1' incorporates:
24431 * Constant: '<S911>/FixPt Constant'
24432 */
24433 L4_MABX_B.FixPtSum1_p = L4_MABX_B.Unit_Delay + L4_MABX_P.FixPtConstant_Value;
24434
24435 /* Switch: '<S912>/FixPt Switch' incorporates:
24436 * Constant: '<S912>/Constant'
24437 */
24438 if (L4_MABX_B.FixPtSum1_p > L4_MABX_P.WrapToZero1_Threshold) {
24439 L4_MABX_B.FixPtSwitch = L4_MABX_P.Constant_Value_hf;
24440 } else {
24441 L4_MABX_B.FixPtSwitch = L4_MABX_B.FixPtSum1_p;
24442 }
24443
24444 /* End of Switch: '<S912>/FixPt Switch' */
24445 }
24446
24447 /* End of Outputs for SubSystem: '<S861>/Rolling_15_counter' */
24448
24449 /* DataTypeConversion: '<S861>/Data Type Conversion1' */
24450 tmp_2 = L4_MABX_B.Unit_Delay;
24451 if (tmp_2 < 256.0) {
24452 if (tmp_2 >= 0.0) {
24453 tmp_1 = (uint8_T)tmp_2;
24454 } else {
24455 tmp_1 = 0U;
24456 }
24457 } else {
24458 tmp_1 = MAX_uint8_T;
24459 }
24460
24461 L4_MABX_B.DataTypeConversion1_kp = tmp_1;
24462
24463 /* End of DataTypeConversion: '<S861>/Data Type Conversion1' */
24464
24465 /* S-Function (sfix_bitop): '<S897>/Operator' */
24466 L4_MABX_B.Operator_ok = (uint8_T)(L4_MABX_B.DataTypeConversion1_kp &
24467 L4_MABX_P.Operator_BitMask_if);
24468
24469 /* DataTypeConversion: '<S897>/DataType' */
24470 L4_MABX_B.DataType_mc = L4_MABX_B.Operator_ok;
24471
24472 /* DataTypeConversion: '<S900>/Data Type Conversion' incorporates:
24473 * Constant: '<S900>/Priority'
24474 */
24475 L4_MABX_B.DataTypeConversion_ii = L4_MABX_P.Priority_Value;
24476
24477 /* ArithShift: '<S900>/Shift_Arithmetic ' */
24478 L4_MABX_B.Shift_Arithmetic_m = L4_MABX_B.DataTypeConversion_ii << 26;
24479
24480 /* DataTypeConversion: '<S900>/Data Type Conversion1' incorporates:
24481 * Constant: '<S900>/ExtendedDataPage'
24482 */
24483 L4_MABX_B.DataTypeConversion1_fq = L4_MABX_P.ExtendedDataPage_Value;
24484
24485 /* ArithShift: '<S900>/Shift_Arithmetic 1' */
24486 L4_MABX_B.Shift_Arithmetic1_j = L4_MABX_B.DataTypeConversion1_fq << 25;
24487
24488 /* DataTypeConversion: '<S900>/Data Type Conversion2' incorporates:
24489 * Constant: '<S900>/DataPage'
24490 */
24491 L4_MABX_B.DataTypeConversion2_ms = L4_MABX_P.DataPage_Value;
24492
24493 /* ArithShift: '<S900>/Shift_Arithmetic 2' */
24494 L4_MABX_B.Shift_Arithmetic2_a = L4_MABX_B.DataTypeConversion2_ms << 24;
24495
24496 /* DataTypeConversion: '<S900>/Data Type Conversion3' incorporates:
24497 * Constant: '<S900>/PDUFormat'
24498 */
24499 L4_MABX_B.DataTypeConversion3_kq = L4_MABX_P.PDUFormat_Value;
24500
24501 /* ArithShift: '<S900>/Shift_Arithmetic 3' */
24502 L4_MABX_B.Shift_Arithmetic3_cf = L4_MABX_B.DataTypeConversion3_kq << 16;
24503
24504 /* DataTypeConversion: '<S900>/Data Type Conversion4' incorporates:
24505 * Constant: '<S900>/PDUSpecific'
24506 */
24507 L4_MABX_B.DataTypeConversion4_ba = L4_MABX_P.PDUSpecific_Value;
24508
24509 /* ArithShift: '<S900>/Shift_Arithmetic 4' */
24510 L4_MABX_B.Shift_Arithmetic4_k = L4_MABX_B.DataTypeConversion4_ba << 8;
24511
24512 /* DataTypeConversion: '<S900>/Data Type Conversion5' incorporates:
24513 * Constant: '<S900>/SourceAddress'
24514 */
24515 L4_MABX_B.DataTypeConversion5_n = L4_MABX_P.SourceAddress_Value;
24516
24517 /* S-Function (sfix_bitop): '<S910>/Operator' */
24518 L4_MABX_B.Operator_i = L4_MABX_B.Shift_Arithmetic_m |
24519 L4_MABX_B.Shift_Arithmetic1_j | L4_MABX_B.Shift_Arithmetic2_a |
24520 L4_MABX_B.Shift_Arithmetic3_cf | L4_MABX_B.Shift_Arithmetic4_k |
24521 L4_MABX_B.DataTypeConversion5_n;
24522
24523 /* DataTypeConversion: '<S910>/DataType' */
24524 L4_MABX_B.DataType_ht = L4_MABX_B.Operator_i;
24525
24526 /* DataTypeConversion: '<S899>/Data Type Conversion8' */
24527 L4_MABX_B.DataTypeConversion8_b = L4_MABX_B.DataType_ht;
24528
24529 /* S-Function (sfix_bitop): '<S906>/Operator' */
24530 L4_MABX_B.Operator_p = L4_MABX_B.DataTypeConversion8_b &
24531 L4_MABX_P.Operator_BitMask_lf;
24532
24533 /* DataTypeConversion: '<S906>/DataType' */
24534 tmp_0 = L4_MABX_B.Operator_p;
24535 if (tmp_0 > 255U) {
24536 tmp_0 = 255U;
24537 }
24538
24539 L4_MABX_B.DataType_gm = (uint8_T)tmp_0;
24540
24541 /* End of DataTypeConversion: '<S906>/DataType' */
24542
24543 /* S-Function (sfix_bitop): '<S907>/Operator' */
24544 L4_MABX_B.Operator_bp = L4_MABX_B.DataTypeConversion8_b &
24545 L4_MABX_P.Operator_BitMask_pd;
24546
24547 /* DataTypeConversion: '<S907>/DataType' */
24548 tmp_0 = L4_MABX_B.Operator_bp;
24549 if (tmp_0 > 65535U) {
24550 tmp_0 = 65535U;
24551 }
24552
24553 L4_MABX_B.DataType_ipn = (uint16_T)tmp_0;
24554
24555 /* End of DataTypeConversion: '<S907>/DataType' */
24556
24557 /* ArithShift: '<S899>/Shift_Arithmetic 3' */
24558 L4_MABX_B.Shift_Arithmetic3_nh = (uint16_T)((uint32_T)L4_MABX_B.DataType_ipn >>
24559 8);
24560
24561 /* DataTypeConversion: '<S899>/Data Type Conversion9' */
24562 tmp = L4_MABX_B.Shift_Arithmetic3_nh;
24563 if (tmp > 255) {
24564 tmp = 255U;
24565 }
24566
24567 L4_MABX_B.MessageIDMidLowByte = (uint8_T)tmp;
24568
24569 /* End of DataTypeConversion: '<S899>/Data Type Conversion9' */
24570
24571 /* S-Function (sfix_bitop): '<S908>/Operator' */
24572 L4_MABX_B.Operator_j = L4_MABX_B.DataTypeConversion8_b &
24573 L4_MABX_P.Operator_BitMask_p2;
24574
24575 /* DataTypeConversion: '<S908>/DataType' */
24576 L4_MABX_B.DataType_d0 = L4_MABX_B.Operator_j;
24577
24578 /* ArithShift: '<S899>/Shift_Arithmetic 4' */
24579 L4_MABX_B.Shift_Arithmetic4_c = L4_MABX_B.DataType_d0 >> 16;
24580
24581 /* DataTypeConversion: '<S899>/Data Type Conversion10' */
24582 tmp_0 = L4_MABX_B.Shift_Arithmetic4_c;
24583 if (tmp_0 > 255U) {
24584 tmp_0 = 255U;
24585 }
24586
24587 L4_MABX_B.MessageIDMidHighByte = (uint8_T)tmp_0;
24588
24589 /* End of DataTypeConversion: '<S899>/Data Type Conversion10' */
24590
24591 /* S-Function (sfix_bitop): '<S909>/Operator' */
24592 L4_MABX_B.Operator_bs = L4_MABX_B.DataTypeConversion8_b &
24593 L4_MABX_P.Operator_BitMask_pn;
24594
24595 /* DataTypeConversion: '<S909>/DataType' */
24596 L4_MABX_B.DataType_c0 = L4_MABX_B.Operator_bs;
24597
24598 /* ArithShift: '<S899>/Shift_Arithmetic 5' */
24599 L4_MABX_B.Shift_Arithmetic5_h = L4_MABX_B.DataType_c0 >> 24;
24600
24601 /* DataTypeConversion: '<S899>/Data Type Conversion11' */
24602 tmp_0 = L4_MABX_B.Shift_Arithmetic5_h;
24603 if (tmp_0 > 255U) {
24604 tmp_0 = 255U;
24605 }
24606
24607 L4_MABX_B.MessageIDHighByte = (uint8_T)tmp_0;
24608
24609 /* End of DataTypeConversion: '<S899>/Data Type Conversion11' */
24610
24611 /* DataTypeConversion: '<S899>/Data Type Conversion13' */
24612 tmp_2 = L4_MABX_B.Unit_Delay;
24613 if (tmp_2 < 256.0) {
24614 if (tmp_2 >= 0.0) {
24615 tmp_1 = (uint8_T)tmp_2;
24616 } else {
24617 tmp_1 = 0U;
24618 }
24619 } else {
24620 tmp_1 = MAX_uint8_T;
24621 }
24622
24623 L4_MABX_B.DataTypeConversion13_f = tmp_1;
24624
24625 /* End of DataTypeConversion: '<S899>/Data Type Conversion13' */
24626
24627 /* S-Function (sfix_bitop): '<S905>/Operator' */
24628 L4_MABX_B.Operator_c3 = (uint8_T)(L4_MABX_B.DataTypeConversion13_f &
24629 L4_MABX_P.Operator_BitMask_cb);
24630
24631 /* DataTypeConversion: '<S905>/DataType' */
24632 L4_MABX_B.DataType_fe = L4_MABX_B.Operator_c3;
24633
24634 /* Sum: '<S899>/Add' incorporates:
24635 * Constant: '<S861>/Constant3'
24636 */
24637 L4_MABX_B.Checksum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24638 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
24639 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24640 ((uint32_T)(uint8_T)((uint32_T)L4_MABX_B.DataType_k1 +
24641 L4_MABX_P.Constant3_Value_ny) + L4_MABX_P.Constant3_Value_ny) +
24642 L4_MABX_P.Constant3_Value_ny) + L4_MABX_P.Constant3_Value_ny) +
24643 L4_MABX_P.Constant3_Value_ny) + L4_MABX_P.Constant3_Value_ny) +
24644 L4_MABX_B.DataType_gm) + L4_MABX_B.MessageIDMidLowByte) +
24645 L4_MABX_B.MessageIDMidHighByte) + L4_MABX_B.MessageIDHighByte) +
24646 L4_MABX_B.DataType_fe);
24647
24648 /* ArithShift: '<S899>/Shift_Arithmetic 7' */
24649 L4_MABX_B.Shift_Arithmetic7_p = (uint8_T)((uint32_T)L4_MABX_B.Checksum >> 4);
24650
24651 /* Sum: '<S899>/Add1' */
24652 L4_MABX_B.Add1_nk = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic7_p +
24653 L4_MABX_B.Checksum);
24654
24655 /* S-Function (sfix_bitop): '<S904>/Operator' */
24656 L4_MABX_B.Operator_nm = (uint8_T)(L4_MABX_B.Add1_nk &
24657 L4_MABX_P.Operator_BitMask_kol);
24658
24659 /* DataTypeConversion: '<S904>/DataType' */
24660 L4_MABX_B.DataType_h2 = L4_MABX_B.Operator_nm;
24661
24662 /* DataTypeConversion: '<S861>/Data Type Conversion3' */
24663 L4_MABX_B.DataTypeConversion3_kk = L4_MABX_B.DataType_h2;
24664
24665 /* S-Function (sfix_bitop): '<S898>/Operator' */
24666 L4_MABX_B.Operator_cs = (uint8_T)(L4_MABX_B.DataTypeConversion3_kk &
24667 L4_MABX_P.Operator_BitMask_mo);
24668
24669 /* DataTypeConversion: '<S898>/DataType' */
24670 L4_MABX_B.DataType_mq = L4_MABX_B.Operator_cs;
24671
24672 /* ArithShift: '<S861>/Shift_Arithmetic 3' */
24673 L4_MABX_B.Shift_Arithmetic3_i = (uint8_T)(L4_MABX_B.DataType_mq << 4);
24674
24675 /* S-Function (sfix_bitop): '<S902>/Operator' */
24676 L4_MABX_B.Operator_mh = (uint8_T)(L4_MABX_B.DataType_mc |
24677 L4_MABX_B.Shift_Arithmetic3_i);
24678
24679 /* DataTypeConversion: '<S902>/DataType' */
24680 L4_MABX_B.DataType_gre = L4_MABX_B.Operator_mh;
24681
24682 /* DataTypeConversion: '<S856>/Data Type Conversion1' incorporates:
24683 * Constant: '<S861>/Constant3'
24684 */
24685 L4_MABX_B.DataTypeConversion1_ee[0] = L4_MABX_B.DataType_k1;
24686 L4_MABX_B.DataTypeConversion1_ee[1] = L4_MABX_P.Constant3_Value_ny;
24687 L4_MABX_B.DataTypeConversion1_ee[2] = L4_MABX_P.Constant3_Value_ny;
24688 L4_MABX_B.DataTypeConversion1_ee[3] = L4_MABX_P.Constant3_Value_ny;
24689 L4_MABX_B.DataTypeConversion1_ee[4] = L4_MABX_P.Constant3_Value_ny;
24690 L4_MABX_B.DataTypeConversion1_ee[5] = L4_MABX_P.Constant3_Value_ny;
24691 L4_MABX_B.DataTypeConversion1_ee[6] = L4_MABX_P.Constant3_Value_ny;
24692 L4_MABX_B.DataTypeConversion1_ee[7] = L4_MABX_B.DataType_gre;
24693
24694 /* DataTypeConversion: '<S856>/Data Type Conversion' incorporates:
24695 * Constant: '<S828>/CANT_PROPB_XPR_FC_CHANNEL_APV'
24696 */
24697 L4_MABX_B.DataTypeConversion_do4 = (uint8_T)
24698 L4_MABX_P.CANT_PROPB_XPR_FC_CHANNEL_APV_V;
24699
24700 /* S-Function (sfix_bitop): '<S871>/Operator' */
24701 L4_MABX_B.Operator_io = (uint8_T)(L4_MABX_B.DataTypeConversion_do4 &
24702 L4_MABX_P.Operator_BitMask_gc);
24703
24704 /* DataTypeConversion: '<S871>/DataType' */
24705 L4_MABX_B.DataType_jnh = L4_MABX_B.Operator_io;
24706
24707 /* DataTypeConversion: '<S856>/Data Type Conversion2' */
24708 L4_MABX_B.DataTypeConversion2_lh = (L4_MABX_B.DataType_jnh != 0);
24709
24710 /* Logic: '<S879>/Operator' */
24711 L4_MABX_B.Operator_kb = (L4_MABX_B.TmpRTBAtOperatorInport1 &&
24712 L4_MABX_B.DataTypeConversion2_lh);
24713
24714 /* DataTypeConversion: '<S879>/DataType' */
24715 L4_MABX_B.DataType_n2i = L4_MABX_B.Operator_kb;
24716
24717 /* Outputs for Enabled SubSystem: '<S883>/PropB_XPR_FC' incorporates:
24718 * EnablePort: '<S885>/Enable'
24719 */
24720 if (L4_MABX_B.DataType_n2i) {
24721 /* S-Function (rti_commonblock): '<S885>/S-Function1' */
24722 /* This comment workarounds a code generation problem */
24723
24724 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24725 {
24726 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24727
24728 Float32 delayTime = 0.0;
24729
24730 /* ... Read status and timestamp info (previous message) */
24731 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]);
24732
24733 /* Convert timestamp */
24734 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed) {
24735 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp =
24736 rtk_dsts_time_to_simtime_convert
24737 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp);
24738 }
24739
24740 /* Messages with timestamp zero have been received in pause/stop state
24741 and must not be handled.
24742 */
24743 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24744 L4_MABX_B.SFunction1_o1_g = (real_T)
24745 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed;
24746 L4_MABX_B.SFunction1_o2_ee = (real_T)
24747 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp;
24748 L4_MABX_B.SFunction1_o3_cv = (real_T)
24749 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->deltatime;
24750 L4_MABX_B.SFunction1_o4_ca = (real_T)
24751 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->delaytime;
24752 }
24753
24754 /* ... Encode Simulink signals of TX and RM blocks*/
24755 {
24756 rtican_Signal_t CAN_Sgn;
24757
24758 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24759 /* Add or substract 0.5 in order to round to nearest integer */
24760 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[0] )
24761 + 0.5);
24762 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24763 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24764
24765 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24766 /* Add or substract 0.5 in order to round to nearest integer */
24767 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[1] )
24768 + 0.5);
24769 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24770 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24771
24772 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24773 /* Add or substract 0.5 in order to round to nearest integer */
24774 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[2] )
24775 + 0.5);
24776 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24777 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24778
24779 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24780 /* Add or substract 0.5 in order to round to nearest integer */
24781 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[3] )
24782 + 0.5);
24783 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24784 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24785
24786 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24787 /* Add or substract 0.5 in order to round to nearest integer */
24788 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[4] )
24789 + 0.5);
24790 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24791 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24792
24793 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24794 /* Add or substract 0.5 in order to round to nearest integer */
24795 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[5] )
24796 + 0.5);
24797 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24798 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24799
24800 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24801 /* Add or substract 0.5 in order to round to nearest integer */
24802 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[6] )
24803 + 0.5);
24804 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24805 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24806
24807 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24808 /* Add or substract 0.5 in order to round to nearest integer */
24809 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[7] )
24810 + 0.5);
24811 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24812 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24813 }
24814
24815 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24816 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC], 8,
24817 &(CAN_Msg[0]), delayTime);
24818 }
24819 }
24820
24821 /* End of Outputs for SubSystem: '<S883>/PropB_XPR_FC' */
24822
24823 /* S-Function (sfix_bitop): '<S876>/Operator' */
24824 L4_MABX_B.Operator_in = (uint8_T)(L4_MABX_B.DataTypeConversion_do4 &
24825 L4_MABX_P.Operator_BitMask_em);
24826
24827 /* DataTypeConversion: '<S876>/DataType' */
24828 L4_MABX_B.DataType_nn = L4_MABX_B.Operator_in;
24829
24830 /* ArithShift: '<S856>/Shift_Arithmetic 2' */
24831 L4_MABX_B.Shift_Arithmetic2_g4 = ldexp(L4_MABX_B.DataType_nn, (-3));
24832
24833 /* DataTypeConversion: '<S856>/Data Type Conversion5' */
24834 L4_MABX_B.DataTypeConversion5_d = (L4_MABX_B.Shift_Arithmetic2_g4 != 0.0);
24835
24836 /* Logic: '<S882>/Operator' */
24837 L4_MABX_B.Operator_g4 = (L4_MABX_B.TmpRTBAtOperatorInport1_j &&
24838 L4_MABX_B.DataTypeConversion5_d);
24839
24840 /* DataTypeConversion: '<S882>/DataType' */
24841 L4_MABX_B.DataType_i1 = L4_MABX_B.Operator_g4;
24842
24843 /* Outputs for Enabled SubSystem: '<S884>/PropB_XPR_FC' incorporates:
24844 * EnablePort: '<S886>/Enable'
24845 */
24846 if (L4_MABX_B.DataType_i1) {
24847 /* S-Function (rti_commonblock): '<S886>/S-Function1' */
24848 /* This comment workarounds a code generation problem */
24849
24850 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24851 {
24852 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24853
24854 Float32 delayTime = 0.0;
24855
24856 /* ... Read status and timestamp info (previous message) */
24857 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]);
24858
24859 /* Convert timestamp */
24860 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed) {
24861 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp =
24862 rtk_dsts_time_to_simtime_convert
24863 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp);
24864 }
24865
24866 /* Messages with timestamp zero have been received in pause/stop state
24867 and must not be handled.
24868 */
24869 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24870 L4_MABX_B.SFunction1_o1_hk = (real_T)
24871 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed;
24872 L4_MABX_B.SFunction1_o2_k = (real_T)
24873 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp;
24874 L4_MABX_B.SFunction1_o3_bz = (real_T)
24875 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->deltatime;
24876 L4_MABX_B.SFunction1_o4_lf = (real_T)
24877 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->delaytime;
24878 }
24879
24880 /* ... Encode Simulink signals of TX and RM blocks*/
24881 {
24882 rtican_Signal_t CAN_Sgn;
24883
24884 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24885 /* Add or substract 0.5 in order to round to nearest integer */
24886 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[0] )
24887 + 0.5);
24888 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24889 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24890
24891 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24892 /* Add or substract 0.5 in order to round to nearest integer */
24893 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[1] )
24894 + 0.5);
24895 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24896 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24897
24898 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24899 /* Add or substract 0.5 in order to round to nearest integer */
24900 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[2] )
24901 + 0.5);
24902 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24903 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24904
24905 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24906 /* Add or substract 0.5 in order to round to nearest integer */
24907 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[3] )
24908 + 0.5);
24909 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24910 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24911
24912 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24913 /* Add or substract 0.5 in order to round to nearest integer */
24914 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[4] )
24915 + 0.5);
24916 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24917 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24918
24919 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24920 /* Add or substract 0.5 in order to round to nearest integer */
24921 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[5] )
24922 + 0.5);
24923 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24924 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24925
24926 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24927 /* Add or substract 0.5 in order to round to nearest integer */
24928 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[6] )
24929 + 0.5);
24930 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24931 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24932
24933 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24934 /* Add or substract 0.5 in order to round to nearest integer */
24935 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_ee[7] )
24936 + 0.5);
24937 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24938 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24939 }
24940
24941 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24942 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC], 8,
24943 &(CAN_Msg[0]), delayTime);
24944 }
24945 }
24946
24947 /* End of Outputs for SubSystem: '<S884>/PropB_XPR_FC' */
24948
24949 /* S-Function (sfix_bitop): '<S872>/Operator' */
24950 L4_MABX_B.Operator_e0 = (uint8_T)(L4_MABX_B.DataTypeConversion_do4 &
24951 L4_MABX_P.Operator_BitMask_id);
24952
24953 /* DataTypeConversion: '<S872>/DataType' */
24954 L4_MABX_B.DataType_ch = L4_MABX_B.Operator_e0;
24955
24956 /* S-Function (sfix_bitop): '<S877>/Operator' */
24957 L4_MABX_B.Operator_ni = (uint8_T)(L4_MABX_B.DataTypeConversion_do4 &
24958 L4_MABX_P.Operator_BitMask_mk);
24959
24960 /* DataTypeConversion: '<S877>/DataType' */
24961 L4_MABX_B.DataType_gh = L4_MABX_B.Operator_ni;
24962
24963 /* ArithShift: '<S856>/Shift_Arithmetic 3' */
24964 L4_MABX_B.Shift_Arithmetic3_n = ldexp(L4_MABX_B.DataType_gh, (-4));
24965
24966 /* DataTypeConversion: '<S856>/Data Type Conversion6' */
24967 L4_MABX_B.DataTypeConversion6_e = (L4_MABX_B.Shift_Arithmetic3_n != 0.0);
24968
24969 /* Logic: '<S873>/Operator' */
24970 L4_MABX_B.Operator_oyn = (L4_MABX_B.TmpRTBAtOperatorInport1_b &&
24971 L4_MABX_B.DataTypeConversion6_e);
24972
24973 /* DataTypeConversion: '<S873>/DataType' */
24974 L4_MABX_B.DataType_gb = L4_MABX_B.Operator_oyn;
24975
24976 /* S-Function (sfix_bitop): '<S878>/Operator' */
24977 L4_MABX_B.Operator_f2r = (uint8_T)(L4_MABX_B.DataTypeConversion_do4 &
24978 L4_MABX_P.Operator_BitMask_es);
24979
24980 /* DataTypeConversion: '<S878>/DataType' */
24981 L4_MABX_B.DataType_cg = L4_MABX_B.Operator_f2r;
24982
24983 /* ArithShift: '<S856>/Shift_Arithmetic 4' */
24984 L4_MABX_B.Shift_Arithmetic4_p = ldexp(L4_MABX_B.DataType_cg, (-5));
24985
24986 /* DataTypeConversion: '<S856>/Data Type Conversion7' */
24987 L4_MABX_B.DataTypeConversion7_on = (L4_MABX_B.Shift_Arithmetic4_p != 0.0);
24988
24989 /* Logic: '<S874>/Operator' */
24990 L4_MABX_B.Operator_bl = (L4_MABX_B.TmpRTBAtOperatorInport1_n &&
24991 L4_MABX_B.DataTypeConversion7_on);
24992
24993 /* DataTypeConversion: '<S874>/DataType' */
24994 L4_MABX_B.DataType_d2a = L4_MABX_B.Operator_bl;
24995
24996 /* S-Function (sfix_bitop): '<S875>/Operator' */
24997 L4_MABX_B.Operator_hm = (uint8_T)(L4_MABX_B.DataTypeConversion_do4 &
24998 L4_MABX_P.Operator_BitMask_d);
24999
25000 /* DataTypeConversion: '<S875>/DataType' */
25001 L4_MABX_B.DataType_ef = L4_MABX_B.Operator_hm;
25002
25003 /* ArithShift: '<S856>/Shift_Arithmetic ' */
25004 L4_MABX_B.Shift_Arithmetic_l = ldexp(L4_MABX_B.DataType_ch, (-1));
25005
25006 /* DataTypeConversion: '<S856>/Data Type Conversion3' */
25007 L4_MABX_B.DataTypeConversion3_gc = (L4_MABX_B.Shift_Arithmetic_l != 0.0);
25008
25009 /* Logic: '<S880>/Operator' */
25010 L4_MABX_B.Operator_dg = (L4_MABX_B.TmpRTBAtOperatorInport1_d &&
25011 L4_MABX_B.DataTypeConversion3_gc);
25012
25013 /* DataTypeConversion: '<S880>/DataType' */
25014 L4_MABX_B.DataType_p1 = L4_MABX_B.Operator_dg;
25015
25016 /* ArithShift: '<S856>/Shift_Arithmetic 1' */
25017 L4_MABX_B.Shift_Arithmetic1_e = ldexp(L4_MABX_B.DataType_ef, (-2));
25018
25019 /* DataTypeConversion: '<S856>/Data Type Conversion4' */
25020 L4_MABX_B.DataTypeConversion4_gh = (L4_MABX_B.Shift_Arithmetic1_e != 0.0);
25021
25022 /* Logic: '<S881>/Operator' */
25023 L4_MABX_B.Operator_jn = (L4_MABX_B.TmpRTBAtOperatorInport1_h &&
25024 L4_MABX_B.DataTypeConversion4_gh);
25025
25026 /* DataTypeConversion: '<S881>/DataType' */
25027 L4_MABX_B.DataType_ar = L4_MABX_B.Operator_jn;
25028
25029 /* DataTypeConversion: '<S913>/Data Type Conversion' */
25030 L4_MABX_B.DataTypeConversion_j0 = L4_MABX_B.Latitude__a;
25031
25032 /* DataTypeConversion: '<S913>/Data Type Conversion1' */
25033 L4_MABX_B.DataTypeConversion1_o = L4_MABX_B.Longitude__i;
25034
25035 /* DataTypeConversion: '<S862>/Data Type Conversion2' incorporates:
25036 * Constant: '<S828>/enablePosRapidUpdateTX'
25037 */
25038 L4_MABX_B.DataTypeConversion2_al = L4_MABX_P.enablePosRapidUpdateTX_Value;
25039
25040 /* Outputs for Enabled SubSystem: '<S913>/Std_PosRapidUpdate_01' incorporates:
25041 * EnablePort: '<S914>/Enable'
25042 */
25043 if (L4_MABX_B.DataTypeConversion2_al) {
25044 /* S-Function (rti_commonblock): '<S914>/S-Function1' */
25045 /* This comment workarounds a code generation problem */
25046
25047 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
25048 {
25049 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25050
25051 Float32 delayTime = 0.0;
25052
25053 /* ... Read status and timestamp info (previous message) */
25054 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]);
25055
25056 /* Convert timestamp */
25057 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed) {
25058 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp =
25059 rtk_dsts_time_to_simtime_convert
25060 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp);
25061 }
25062
25063 /* Messages with timestamp zero have been received in pause/stop state
25064 and must not be handled.
25065 */
25066 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp > 0.0) {
25067 L4_MABX_B.SFunction1_o1_m = (real_T)
25068 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed;
25069 L4_MABX_B.SFunction1_o2_e = (real_T)
25070 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp;
25071 L4_MABX_B.SFunction1_o3_a = (real_T)
25072 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->deltatime;
25073 L4_MABX_B.SFunction1_o4_f = (real_T)
25074 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->delaytime;
25075 }
25076
25077 /* ... Encode Simulink signals of TX and RM blocks*/
25078 {
25079 rtican_Signal_t CAN_Sgn;
25080
25081 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
25082 /* Add or substract 0.5 in order to round to nearest integer */
25083 if (( L4_MABX_B.DataTypeConversion_j0 - ( 0 ) ) / 1.0E-7 < -0.5)
25084 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_j0 - ( 0 )
25085 ) / 1.0E-7 - 0.5);
25086 else
25087 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_j0 - ( 0 )
25088 ) / 1.0E-7 + 0.5);
25089 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25090 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
25091 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte2;
25092 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte3;
25093
25094 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
25095 /* Add or substract 0.5 in order to round to nearest integer */
25096 if (( L4_MABX_B.DataTypeConversion1_o - ( 0 ) ) / 1.0E-7 < -0.5)
25097 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_o - ( 0 )
25098 ) / 1.0E-7 - 0.5);
25099 else
25100 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_o - ( 0 )
25101 ) / 1.0E-7 + 0.5);
25102 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25103 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
25104 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
25105 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
25106 }
25107
25108 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25109 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3], 8, &(CAN_Msg[0]),
25110 delayTime);
25111 }
25112 }
25113
25114 /* End of Outputs for SubSystem: '<S913>/Std_PosRapidUpdate_01' */
25115
25116 /* Outputs for Enabled SubSystem: '<S864>/CCVS1_00' incorporates:
25117 * EnablePort: '<S866>/Enable'
25118 */
25119 /* Outputs for Enabled SubSystem: '<S863>/CCVS1_00' incorporates:
25120 * EnablePort: '<S865>/Enable'
25121 */
25122 /* Constant: '<S854>/Enable_TX_CCVS1_00' */
25123 if (L4_MABX_P.Enable_TX_CCVS1_00_Value) {
25124 /* S-Function (rti_commonblock): '<S865>/S-Function1' */
25125 /* This comment workarounds a code generation problem */
25126
25127 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
25128 {
25129 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25130
25131 Float32 delayTime = 0.0;
25132
25133 /* ... Read status and timestamp info (previous message) */
25134 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]);
25135
25136 /* Convert timestamp */
25137 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed) {
25138 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp =
25139 rtk_dsts_time_to_simtime_convert
25140 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp);
25141 }
25142
25143 /* Messages with timestamp zero have been received in pause/stop state
25144 and must not be handled.
25145 */
25146 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp > 0.0) {
25147 L4_MABX_B.SFunction1_o1_ns = (real_T)
25148 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed;
25149 L4_MABX_B.SFunction1_o2_c4 = (real_T)
25150 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp;
25151 L4_MABX_B.SFunction1_o3_ov = (real_T)
25152 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->deltatime;
25153 L4_MABX_B.SFunction1_o4_bc = (real_T)
25154 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->delaytime;
25155 }
25156
25157 /* ... Encode Simulink signals of TX and RM blocks*/
25158 {
25159 rtican_Signal_t CAN_Sgn;
25160
25161 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25162 /* Add or substract 0.5 in order to round to nearest integer */
25163 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_i ) + 0.5);
25164 CAN_Sgn.UnsignedSgn &= 0x00000003;
25165 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25166
25167 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25168 /* Add or substract 0.5 in order to round to nearest integer */
25169 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_o ) + 0.5);
25170 CAN_Sgn.UnsignedSgn &= 0x00000003;
25171 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25172 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25173
25174 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25175 /* Add or substract 0.5 in order to round to nearest integer */
25176 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_p ) +
25177 0.5);
25178 CAN_Sgn.UnsignedSgn &= 0x00000003;
25179 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25180 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25181
25182 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25183 /* Add or substract 0.5 in order to round to nearest integer */
25184 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_f )
25185 + 0.5);
25186 CAN_Sgn.UnsignedSgn &= 0x00000003;
25187 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25188 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25189
25190 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25191 /* Add or substract 0.5 in order to round to nearest integer */
25192 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_bu -
25193 ( 0 ) ) / 0.00390625 + 0.5);
25194 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25195 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25196 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25197
25198 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25199 /* Add or substract 0.5 in order to round to nearest integer */
25200 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_b ) + 0.5);
25201 CAN_Sgn.UnsignedSgn &= 0x00000003;
25202 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25203
25204 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25205 /* Add or substract 0.5 in order to round to nearest integer */
25206 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_b0 )
25207 + 0.5);
25208 CAN_Sgn.UnsignedSgn &= 0x00000003;
25209 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25210 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25211
25212 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25213 /* Add or substract 0.5 in order to round to nearest integer */
25214 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_id ) + 0.5);
25215 CAN_Sgn.UnsignedSgn &= 0x00000003;
25216 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25217 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25218
25219 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25220 /* Add or substract 0.5 in order to round to nearest integer */
25221 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_f ) + 0.5);
25222 CAN_Sgn.UnsignedSgn &= 0x00000003;
25223 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25224 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25225
25226 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25227 /* Add or substract 0.5 in order to round to nearest integer */
25228 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_a ) +
25229 0.5);
25230 CAN_Sgn.UnsignedSgn &= 0x00000003;
25231 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25232
25233 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25234 /* Add or substract 0.5 in order to round to nearest integer */
25235 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_n ) +
25236 0.5);
25237 CAN_Sgn.UnsignedSgn &= 0x00000003;
25238 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25239 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25240
25241 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25242 /* Add or substract 0.5 in order to round to nearest integer */
25243 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_a ) +
25244 0.5);
25245 CAN_Sgn.UnsignedSgn &= 0x00000003;
25246 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25247 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25248
25249 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25250 /* Add or substract 0.5 in order to round to nearest integer */
25251 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch_g
25252 ) + 0.5);
25253 CAN_Sgn.UnsignedSgn &= 0x00000003;
25254 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25255 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25256
25257 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25258 /* Add or substract 0.5 in order to round to nearest integer */
25259 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_e ) + 0.5);
25260 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25261 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25262
25263 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25264 /* Add or substract 0.5 in order to round to nearest integer */
25265 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_j ) + 0.5);
25266 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25267 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25268
25269 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25270 /* Add or substract 0.5 in order to round to nearest integer */
25271 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_o ) + 0.5);
25272 CAN_Sgn.UnsignedSgn &= 0x00000007;
25273 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25274 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25275
25276 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25277 /* Add or substract 0.5 in order to round to nearest integer */
25278 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_a ) +
25279 0.5);
25280 CAN_Sgn.UnsignedSgn &= 0x00000003;
25281 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25282
25283 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25284 /* Add or substract 0.5 in order to round to nearest integer */
25285 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_h ) +
25286 0.5);
25287 CAN_Sgn.UnsignedSgn &= 0x00000003;
25288 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25289 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25290
25291 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25292 /* Add or substract 0.5 in order to round to nearest integer */
25293 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_o ) + 0.5);
25294 CAN_Sgn.UnsignedSgn &= 0x00000003;
25295 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25296 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25297
25298 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25299 /* Add or substract 0.5 in order to round to nearest integer */
25300 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_i )
25301 + 0.5);
25302 CAN_Sgn.UnsignedSgn &= 0x00000003;
25303 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25304 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25305 }
25306
25307 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25308 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100], 8,
25309 &(CAN_Msg[0]), delayTime);
25310 }
25311
25312 /* S-Function (rti_commonblock): '<S866>/S-Function1' */
25313 /* This comment workarounds a code generation problem */
25314
25315 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
25316 {
25317 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25318
25319 Float32 delayTime = 0.0;
25320
25321 /* ... Read status and timestamp info (previous message) */
25322 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]);
25323
25324 /* Convert timestamp */
25325 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed) {
25326 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp =
25327 rtk_dsts_time_to_simtime_convert
25328 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp);
25329 }
25330
25331 /* Messages with timestamp zero have been received in pause/stop state
25332 and must not be handled.
25333 */
25334 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp > 0.0) {
25335 L4_MABX_B.SFunction1_o1_ne = (real_T)
25336 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed;
25337 L4_MABX_B.SFunction1_o2_ix = (real_T)
25338 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp;
25339 L4_MABX_B.SFunction1_o3_c1 = (real_T)
25340 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->deltatime;
25341 L4_MABX_B.SFunction1_o4_p = (real_T)
25342 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->delaytime;
25343 }
25344
25345 /* ... Encode Simulink signals of TX and RM blocks*/
25346 {
25347 rtican_Signal_t CAN_Sgn;
25348
25349 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25350 /* Add or substract 0.5 in order to round to nearest integer */
25351 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_ik ) +
25352 0.5);
25353 CAN_Sgn.UnsignedSgn &= 0x00000003;
25354 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25355
25356 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25357 /* Add or substract 0.5 in order to round to nearest integer */
25358 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_ow ) +
25359 0.5);
25360 CAN_Sgn.UnsignedSgn &= 0x00000003;
25361 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25362 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25363
25364 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25365 /* Add or substract 0.5 in order to round to nearest integer */
25366 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_p5 ) +
25367 0.5);
25368 CAN_Sgn.UnsignedSgn &= 0x00000003;
25369 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25370 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25371
25372 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25373 /* Add or substract 0.5 in order to round to nearest integer */
25374 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_fg
25375 ) + 0.5);
25376 CAN_Sgn.UnsignedSgn &= 0x00000003;
25377 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25378 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25379
25380 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25381 /* Add or substract 0.5 in order to round to nearest integer */
25382 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_buu -
25383 ( 0 ) ) / 0.00390625 + 0.5);
25384 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25385 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25386 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25387
25388 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25389 /* Add or substract 0.5 in order to round to nearest integer */
25390 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_bu ) + 0.5);
25391 CAN_Sgn.UnsignedSgn &= 0x00000003;
25392 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25393
25394 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25395 /* Add or substract 0.5 in order to round to nearest integer */
25396 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_b0a )
25397 + 0.5);
25398 CAN_Sgn.UnsignedSgn &= 0x00000003;
25399 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25400 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25401
25402 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25403 /* Add or substract 0.5 in order to round to nearest integer */
25404 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_id0 ) + 0.5);
25405 CAN_Sgn.UnsignedSgn &= 0x00000003;
25406 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25407 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25408
25409 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25410 /* Add or substract 0.5 in order to round to nearest integer */
25411 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_fb ) + 0.5);
25412 CAN_Sgn.UnsignedSgn &= 0x00000003;
25413 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25414 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25415
25416 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25417 /* Add or substract 0.5 in order to round to nearest integer */
25418 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_a4 ) +
25419 0.5);
25420 CAN_Sgn.UnsignedSgn &= 0x00000003;
25421 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25422
25423 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25424 /* Add or substract 0.5 in order to round to nearest integer */
25425 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_ng ) +
25426 0.5);
25427 CAN_Sgn.UnsignedSgn &= 0x00000003;
25428 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25429 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25430
25431 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25432 /* Add or substract 0.5 in order to round to nearest integer */
25433 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_af )
25434 + 0.5);
25435 CAN_Sgn.UnsignedSgn &= 0x00000003;
25436 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25437 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25438
25439 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25440 /* Add or substract 0.5 in order to round to nearest integer */
25441 CAN_Sgn.UnsignedSgn = (UInt32)
25442 (( L4_MABX_B.CruiseCtrlAccelerateSwitch_gi ) + 0.5);
25443 CAN_Sgn.UnsignedSgn &= 0x00000003;
25444 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25445 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25446
25447 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25448 /* Add or substract 0.5 in order to round to nearest integer */
25449 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_ed ) +
25450 0.5);
25451 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25452 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25453
25454 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25455 /* Add or substract 0.5 in order to round to nearest integer */
25456 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_jz ) + 0.5);
25457 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25458 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25459
25460 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25461 /* Add or substract 0.5 in order to round to nearest integer */
25462 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_ob ) + 0.5);
25463 CAN_Sgn.UnsignedSgn &= 0x00000007;
25464 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25465 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25466
25467 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25468 /* Add or substract 0.5 in order to round to nearest integer */
25469 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_a4 )
25470 + 0.5);
25471 CAN_Sgn.UnsignedSgn &= 0x00000003;
25472 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25473
25474 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25475 /* Add or substract 0.5 in order to round to nearest integer */
25476 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_ho )
25477 + 0.5);
25478 CAN_Sgn.UnsignedSgn &= 0x00000003;
25479 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25480 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25481
25482 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25483 /* Add or substract 0.5 in order to round to nearest integer */
25484 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_ot ) + 0.5);
25485 CAN_Sgn.UnsignedSgn &= 0x00000003;
25486 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25487 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25488
25489 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25490 /* Add or substract 0.5 in order to round to nearest integer */
25491 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_ie
25492 ) + 0.5);
25493 CAN_Sgn.UnsignedSgn &= 0x00000003;
25494 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25495 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25496 }
25497
25498 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25499 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100], 8,
25500 &(CAN_Msg[0]), delayTime);
25501 }
25502 }
25503
25504 /* End of Constant: '<S854>/Enable_TX_CCVS1_00' */
25505 /* End of Outputs for SubSystem: '<S863>/CCVS1_00' */
25506 /* End of Outputs for SubSystem: '<S864>/CCVS1_00' */
25507
25508 /* DataTypeConversion: '<S860>/Data Type Conversion' incorporates:
25509 * Constant: '<S859>/Constant'
25510 */
25511 L4_MABX_B.DataTypeConversion_dk = L4_MABX_P.Constant_Value_bq;
25512
25513 /* DataTypeConversion: '<S860>/Data Type Conversion1' */
25514 L4_MABX_B.DataTypeConversion1_nk = (uint16_T)L4_MABX_B.DataTypeConversion_dk;
25515
25516 /* S-Function (sfix_bitop): '<S891>/Operator' */
25517 L4_MABX_B.Operator_az = (uint16_T)(L4_MABX_B.DataTypeConversion1_nk &
25518 L4_MABX_P.Operator_BitMask_hh);
25519
25520 /* DataTypeConversion: '<S891>/DataType' */
25521 tmp = L4_MABX_B.Operator_az;
25522 if (tmp > 255) {
25523 tmp = 255U;
25524 }
25525
25526 L4_MABX_B.DataType_c2v = (uint8_T)tmp;
25527
25528 /* End of DataTypeConversion: '<S891>/DataType' */
25529
25530 /* S-Function (sfix_bitop): '<S892>/Operator' */
25531 L4_MABX_B.Operator_nw = (uint16_T)(L4_MABX_B.DataTypeConversion1_nk &
25532 L4_MABX_P.Operator_BitMask_ad);
25533
25534 /* DataTypeConversion: '<S892>/DataType' */
25535 L4_MABX_B.DataType_h5 = L4_MABX_B.Operator_nw;
25536
25537 /* ArithShift: '<S860>/Shift_Arithmetic ' */
25538 L4_MABX_B.Shift_Arithmetic_d = (uint16_T)((uint32_T)L4_MABX_B.DataType_h5 >> 8);
25539
25540 /* DataTypeConversion: '<S860>/Data Type Conversion2' */
25541 tmp = L4_MABX_B.Shift_Arithmetic_d;
25542 if (tmp > 255) {
25543 tmp = 255U;
25544 }
25545
25546 L4_MABX_B.DataTypeConversion2_oh = (uint8_T)tmp;
25547
25548 /* End of DataTypeConversion: '<S860>/Data Type Conversion2' */
25549
25550 /* DataTypeConversion: '<S855>/Data Type Conversion1' incorporates:
25551 * Constant: '<S860>/Constant'
25552 */
25553 L4_MABX_B.DataTypeConversion1_eu[0] = L4_MABX_P.Constant_Value_hy;
25554 L4_MABX_B.DataTypeConversion1_eu[1] = L4_MABX_P.Constant_Value_hy;
25555 L4_MABX_B.DataTypeConversion1_eu[2] = L4_MABX_P.Constant_Value_hy;
25556 L4_MABX_B.DataTypeConversion1_eu[3] = L4_MABX_P.Constant_Value_hy;
25557 L4_MABX_B.DataTypeConversion1_eu[4] = L4_MABX_P.Constant_Value_hy;
25558 L4_MABX_B.DataTypeConversion1_eu[5] = L4_MABX_P.Constant_Value_hy;
25559 L4_MABX_B.DataTypeConversion1_eu[6] = L4_MABX_B.DataType_c2v;
25560 L4_MABX_B.DataTypeConversion1_eu[7] = L4_MABX_B.DataTypeConversion2_oh;
25561
25562 /* RateTransition: '<S867>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25563 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P = L4_MABX_B.Operator_ox;
25564
25565 /* Outputs for Enabled SubSystem: '<S867>/PropB_REAX_5_E4' incorporates:
25566 * EnablePort: '<S869>/Enable'
25567 */
25568 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P) {
25569 /* S-Function (rti_commonblock): '<S869>/S-Function1' incorporates:
25570 * Constant: '<S867>/Constant'
25571 * Constant: '<S867>/Constant1'
25572 */
25573 /* This comment workarounds a code generation problem */
25574
25575 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25576 {
25577 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25578 0x00 };
25579
25580 Float32 delayTime = 0.0;
25581
25582 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25583 CANTP1_PTR_M1_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25584
25585 /* ... perform loop-back if required */
25586 if (L4_MABX_P.Constant1_Value_eq > 0.5) {
25587 /* ... updating the used tx-clientbuffer */
25588 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->module,
25589 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25590
25591 /* ... Read status and timestamp info perform loop-back (previous message) */
25592 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4,
25593 8, // datalen
25594 &(CAN_Msg[0]),
25595 CANTP1_RX_SPMSG_M1_C2_XTD);
25596
25597 /* Convert timestamp */
25598 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25599 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25600 rtk_dsts_time_to_simtime_convert
25601 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25602 }
25603 } else {
25604 /* ... Read status and timestamp info (previous message) */
25605 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4);
25606
25607 /* Convert timestamp */
25608 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25609 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25610 rtk_dsts_time_to_simtime_convert
25611 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25612 }
25613 }
25614
25615 /* Messages with timestamp zero have been received in pause/stop state
25616 and must not be handled.
25617 */
25618 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25619 L4_MABX_B.SFunction1_o1_cl = (real_T)
25620 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25621 L4_MABX_B.SFunction1_o2_ds = (real_T)
25622 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25623 L4_MABX_B.SFunction1_o3_h = (real_T)
25624 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25625 L4_MABX_B.SFunction1_o4_mj = (real_T)
25626 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25627 }
25628
25629 /* ... Encode Simulink signals of TX and RM blocks*/
25630 {
25631 rtican_Signal_t CAN_Sgn;
25632 UInt32 i;
25633
25634 /* Initialize the static message data to zero */
25635 for (i=0; i<8; i++ )
25636 CAN_Msg[i] = 0;
25637
25638 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25639 /* Add or substract 0.5 in order to round to nearest integer */
25640 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[0] )
25641 + 0.5);
25642 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25643 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25644
25645 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25646 /* Add or substract 0.5 in order to round to nearest integer */
25647 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[1] )
25648 + 0.5);
25649 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25650 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25651
25652 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25653 /* Add or substract 0.5 in order to round to nearest integer */
25654 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[2] )
25655 + 0.5);
25656 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25657 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25658
25659 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25660 /* Add or substract 0.5 in order to round to nearest integer */
25661 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[3] )
25662 + 0.5);
25663 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25664 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25665
25666 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25667 /* Add or substract 0.5 in order to round to nearest integer */
25668 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[4] )
25669 + 0.5);
25670 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25671 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25672
25673 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25674 /* Add or substract 0.5 in order to round to nearest integer */
25675 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[5] )
25676 + 0.5);
25677 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25678 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25679
25680 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25681 /* Add or substract 0.5 in order to round to nearest integer */
25682 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[6] )
25683 + 0.5);
25684 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25685 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25686
25687 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25688 /* Add or substract 0.5 in order to round to nearest integer */
25689 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[7] )
25690 + 0.5);
25691 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25692 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25693 }
25694
25695 delayTime = (Float32) L4_MABX_P.Constant_Value_ez / (1700);
25696
25697 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25698 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4], 8,
25699 &(CAN_Msg[0]), delayTime);
25700 }
25701 }
25702
25703 /* End of Outputs for SubSystem: '<S867>/PropB_REAX_5_E4' */
25704
25705 /* RateTransition: '<S868>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25706 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_m = L4_MABX_B.EnablePropB_ReAX_CAN6;
25707
25708 /* Outputs for Enabled SubSystem: '<S868>/PropB_REAX_5_E4' incorporates:
25709 * EnablePort: '<S870>/Enable'
25710 */
25711 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_m) {
25712 /* S-Function (rti_commonblock): '<S870>/S-Function1' incorporates:
25713 * Constant: '<S868>/Constant'
25714 * Constant: '<S868>/Constant1'
25715 */
25716 /* This comment workarounds a code generation problem */
25717
25718 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25719 {
25720 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25721 0x00 };
25722
25723 Float32 delayTime = 0.0;
25724
25725 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25726 CANTP1_PTR_M3_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25727
25728 /* ... perform loop-back if required */
25729 if (L4_MABX_P.Constant1_Value_ok > 0.5) {
25730 /* ... updating the used tx-clientbuffer */
25731 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->module,
25732 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25733
25734 /* ... Read status and timestamp info perform loop-back (previous message) */
25735 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4,
25736 8, // datalen
25737 &(CAN_Msg[0]),
25738 CANTP1_RX_SPMSG_M3_C2_XTD);
25739
25740 /* Convert timestamp */
25741 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25742 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25743 rtk_dsts_time_to_simtime_convert
25744 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25745 }
25746 } else {
25747 /* ... Read status and timestamp info (previous message) */
25748 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4);
25749
25750 /* Convert timestamp */
25751 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25752 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25753 rtk_dsts_time_to_simtime_convert
25754 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25755 }
25756 }
25757
25758 /* Messages with timestamp zero have been received in pause/stop state
25759 and must not be handled.
25760 */
25761 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25762 L4_MABX_B.SFunction1_o1_p = (real_T)
25763 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25764 L4_MABX_B.SFunction1_o2_c1 = (real_T)
25765 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25766 L4_MABX_B.SFunction1_o3_j = (real_T)
25767 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25768 L4_MABX_B.SFunction1_o4_gc = (real_T)
25769 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25770 }
25771
25772 /* ... Encode Simulink signals of TX and RM blocks*/
25773 {
25774 rtican_Signal_t CAN_Sgn;
25775 UInt32 i;
25776
25777 /* Initialize the static message data to zero */
25778 for (i=0; i<8; i++ )
25779 CAN_Msg[i] = 0;
25780
25781 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25782 /* Add or substract 0.5 in order to round to nearest integer */
25783 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[0] )
25784 + 0.5);
25785 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25786 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25787
25788 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25789 /* Add or substract 0.5 in order to round to nearest integer */
25790 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[1] )
25791 + 0.5);
25792 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25793 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25794
25795 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25796 /* Add or substract 0.5 in order to round to nearest integer */
25797 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[2] )
25798 + 0.5);
25799 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25800 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25801
25802 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25803 /* Add or substract 0.5 in order to round to nearest integer */
25804 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[3] )
25805 + 0.5);
25806 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25807 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25808
25809 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25810 /* Add or substract 0.5 in order to round to nearest integer */
25811 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[4] )
25812 + 0.5);
25813 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25814 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25815
25816 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25817 /* Add or substract 0.5 in order to round to nearest integer */
25818 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[5] )
25819 + 0.5);
25820 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25821 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25822
25823 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25824 /* Add or substract 0.5 in order to round to nearest integer */
25825 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[6] )
25826 + 0.5);
25827 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25828 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25829
25830 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25831 /* Add or substract 0.5 in order to round to nearest integer */
25832 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_eu[7] )
25833 + 0.5);
25834 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25835 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25836 }
25837
25838 delayTime = (Float32) L4_MABX_P.Constant_Value_ha / (1700);
25839
25840 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25841 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4], 8,
25842 &(CAN_Msg[0]), delayTime);
25843 }
25844 }
25845
25846 /* End of Outputs for SubSystem: '<S868>/PropB_REAX_5_E4' */
25847
25848 /* DataTypeConversion: '<S887>/Data Type Conversion' */
25849 L4_MABX_B.DataTypeConversion_k = L4_MABX_B.SID_fa;
25850
25851 /* DataTypeConversion: '<S887>/Data Type Conversion1' */
25852 L4_MABX_B.DataTypeConversion1_l = L4_MABX_B.COGReference_c;
25853
25854 /* DataTypeConversion: '<S887>/Data Type Conversion2' */
25855 L4_MABX_B.DataTypeConversion2_a = L4_MABX_B.CourseOverGround_i;
25856
25857 /* DataTypeConversion: '<S887>/Data Type Conversion3' */
25858 L4_MABX_B.DataTypeConversion3_e = L4_MABX_B.SpeedOverGround_l;
25859
25860 /* DataTypeConversion: '<S857>/Data Type Conversion2' incorporates:
25861 * Constant: '<S828>/enableCOGSRapidUpdateTX'
25862 */
25863 L4_MABX_B.DataTypeConversion2_ho = L4_MABX_P.enableCOGSRapidUpdateTX_Value;
25864
25865 /* Outputs for Enabled SubSystem: '<S887>/Std_COGSOGRapidUpdate_01' incorporates:
25866 * EnablePort: '<S888>/Enable'
25867 */
25868 if (L4_MABX_B.DataTypeConversion2_ho) {
25869 /* S-Function (rti_commonblock): '<S888>/S-Function1' incorporates:
25870 * Constant: '<S887>/Constant'
25871 * Constant: '<S887>/Constant1'
25872 */
25873 /* This comment workarounds a code generation problem */
25874
25875 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
25876 {
25877 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25878 0x00 };
25879
25880 Float32 delayTime = 0.0;
25881
25882 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25883 CANTP1_PTR_M3_C2_STD_0x7 = &(CAN_Msg[0]);
25884
25885 /* ... perform loop-back if required */
25886 if (L4_MABX_P.Constant1_Value_mx > 0.5) {
25887 /* ... updating the used tx-clientbuffer */
25888 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X7->module,
25889 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->queue );
25890
25891 /* ... Read status and timestamp info perform loop-back (previous message) */
25892 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X7,
25893 8, // datalen
25894 &(CAN_Msg[0]),
25895 CANTP1_RX_SPMSG_M3_C2_STD);
25896
25897 /* Convert timestamp */
25898 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25899 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25900 rtk_dsts_time_to_simtime_convert
25901 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25902 }
25903 } else {
25904 /* ... Read status and timestamp info (previous message) */
25905 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X7);
25906
25907 /* Convert timestamp */
25908 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25909 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25910 rtk_dsts_time_to_simtime_convert
25911 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25912 }
25913 }
25914
25915 /* Messages with timestamp zero have been received in pause/stop state
25916 and must not be handled.
25917 */
25918 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp > 0.0) {
25919 L4_MABX_B.SFunction1_o1_hp = (real_T)
25920 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed;
25921 L4_MABX_B.SFunction1_o2_iq = (real_T)
25922 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp;
25923 L4_MABX_B.SFunction1_o3_b = (real_T)
25924 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->deltatime;
25925 L4_MABX_B.SFunction1_o4_g = (real_T)
25926 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->delaytime;
25927 }
25928
25929 /* ... Encode Simulink signals of TX and RM blocks*/
25930 {
25931 rtican_Signal_t CAN_Sgn;
25932 UInt32 i;
25933
25934 /* Initialize the static message data to zero */
25935 for (i=0; i<8; i++ )
25936 CAN_Msg[i] = 0;
25937
25938 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
25939 /* Add or substract 0.5 in order to round to nearest integer */
25940 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_k ) + 0.5);
25941 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25942 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25943
25944 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
25945 /* Add or substract 0.5 in order to round to nearest integer */
25946 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_l ) +
25947 0.5);
25948 CAN_Sgn.UnsignedSgn &= 0x00000003;
25949 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25950
25951 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
25952 /* Add or substract 0.5 in order to round to nearest integer */
25953 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_a - ( 0 )
25954 ) / 0.0001 + 0.5);
25955 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25956 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25957 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
25958
25959 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
25960 /* Add or substract 0.5 in order to round to nearest integer */
25961 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_e - ( 0 )
25962 ) / 0.01 + 0.5);
25963 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25964 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25965 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
25966 }
25967
25968 /* mask unused bits with '1' */
25969 CAN_Msg[1] |= 0xFC;
25970 CAN_Msg[6] |= 0xFF;
25971 CAN_Msg[7] |= 0xFF;
25972 delayTime = (Float32) L4_MABX_P.Constant_Value_ga / (2000);
25973
25974 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25975 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7], 8, &(CAN_Msg[0]),
25976 delayTime);
25977 }
25978 }
25979
25980 /* End of Outputs for SubSystem: '<S887>/Std_COGSOGRapidUpdate_01' */
25981
25982 /* DataTypeConversion: '<S858>/Data Type Conversion2' incorporates:
25983 * Constant: '<S828>/enableEBC1_8B_TX'
25984 */
25985 L4_MABX_B.DataTypeConversion2_dy = L4_MABX_P.enableEBC1_8B_TX_Value;
25986
25987 /* Outputs for Enabled SubSystem: '<S889>/EBC1_TX' incorporates:
25988 * EnablePort: '<S890>/Enable'
25989 */
25990 if (L4_MABX_B.DataTypeConversion2_dy) {
25991 /* S-Function (rti_commonblock): '<S890>/S-Function1' */
25992 /* This comment workarounds a code generation problem */
25993
25994 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
25995 {
25996 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25997
25998 Float32 delayTime = 0.0;
25999
26000 /* ... Read status and timestamp info (previous message) */
26001 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]);
26002
26003 /* Convert timestamp */
26004 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed) {
26005 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp =
26006 rtk_dsts_time_to_simtime_convert
26007 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp);
26008 }
26009
26010 /* Messages with timestamp zero have been received in pause/stop state
26011 and must not be handled.
26012 */
26013 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp > 0.0) {
26014 L4_MABX_B.SFunction1_o1_oh = (real_T)
26015 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed;
26016 L4_MABX_B.SFunction1_o2_oa = (real_T)
26017 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp;
26018 L4_MABX_B.SFunction1_o3_kw = (real_T)
26019 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->deltatime;
26020 L4_MABX_B.SFunction1_o4_b = (real_T)
26021 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->delaytime;
26022 }
26023
26024 /* ... Encode Simulink signals of TX and RM blocks*/
26025 {
26026 rtican_Signal_t CAN_Sgn;
26027
26028 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
26029 /* Add or substract 0.5 in order to round to nearest integer */
26030 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASREngCtrlActive ) + 0.5);
26031 CAN_Sgn.UnsignedSgn &= 0x00000003;
26032 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26033
26034 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
26035 /* Add or substract 0.5 in order to round to nearest integer */
26036 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRBrakeCtrlActive ) + 0.5);
26037 CAN_Sgn.UnsignedSgn &= 0x00000003;
26038 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26039 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26040
26041 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
26042 /* Add or substract 0.5 in order to round to nearest integer */
26043 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AntiLockBrakingActive ) +
26044 0.5);
26045 CAN_Sgn.UnsignedSgn &= 0x00000003;
26046 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26047 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26048
26049 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
26050 /* Add or substract 0.5 in order to round to nearest integer */
26051 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSBrakeSwitch_e ) + 0.5);
26052 CAN_Sgn.UnsignedSgn &= 0x00000003;
26053 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26054 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
26055
26056 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
26057 /* Add or substract 0.5 in order to round to nearest integer */
26058 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakePedalPos - ( 0 ) ) /
26059 0.4 + 0.5);
26060 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26061 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
26062
26063 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
26064 /* Add or substract 0.5 in order to round to nearest integer */
26065 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSOffroadSwitch ) + 0.5);
26066 CAN_Sgn.UnsignedSgn &= 0x00000003;
26067 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26068
26069 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
26070 /* Add or substract 0.5 in order to round to nearest integer */
26071 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASROffroadSwitch ) + 0.5);
26072 CAN_Sgn.UnsignedSgn &= 0x00000003;
26073 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26074 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26075
26076 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
26077 /* Add or substract 0.5 in order to round to nearest integer */
26078 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRHillHolderSwitch ) + 0.5);
26079 CAN_Sgn.UnsignedSgn &= 0x00000003;
26080 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26081 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26082
26083 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
26084 /* Add or substract 0.5 in order to round to nearest integer */
26085 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TractionCtrlOverrideSwitch )
26086 + 0.5);
26087 CAN_Sgn.UnsignedSgn &= 0x00000003;
26088 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26089 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
26090
26091 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
26092 /* Add or substract 0.5 in order to round to nearest integer */
26093 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AccelInterlockSwitch ) + 0.5);
26094 CAN_Sgn.UnsignedSgn &= 0x00000003;
26095 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26096
26097 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
26098 /* Add or substract 0.5 in order to round to nearest integer */
26099 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngDerateSwitch ) + 0.5);
26100 CAN_Sgn.UnsignedSgn &= 0x00000003;
26101 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26102 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26103
26104 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
26105 /* Add or substract 0.5 in order to round to nearest integer */
26106 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngAuxShutdownSwitch ) + 0.5);
26107 CAN_Sgn.UnsignedSgn &= 0x00000003;
26108 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26109 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26110
26111 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
26112 /* Add or substract 0.5 in order to round to nearest integer */
26113 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RemoteAccelEnableSwitch ) +
26114 0.5);
26115 CAN_Sgn.UnsignedSgn &= 0x00000003;
26116 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26117 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
26118
26119 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
26120 /* Add or substract 0.5 in order to round to nearest integer */
26121 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngRetarderSelection - ( 0 )
26122 ) / 0.4 + 0.5);
26123 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26124 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
26125
26126 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
26127 /* Add or substract 0.5 in order to round to nearest integer */
26128 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSFullyOperational ) + 0.5);
26129 CAN_Sgn.UnsignedSgn &= 0x00000003;
26130 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26131
26132 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
26133 /* Add or substract 0.5 in order to round to nearest integer */
26134 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSRedWarningSignal ) + 0.5);
26135 CAN_Sgn.UnsignedSgn &= 0x00000003;
26136 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26137 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26138
26139 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
26140 /* Add or substract 0.5 in order to round to nearest integer */
26141 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABS_EBSAmberWarningSignal )
26142 + 0.5);
26143 CAN_Sgn.UnsignedSgn &= 0x00000003;
26144 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26145 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26146
26147 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
26148 /* Add or substract 0.5 in order to round to nearest integer */
26149 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ATC_ASRInformationSignal ) +
26150 0.5);
26151 CAN_Sgn.UnsignedSgn &= 0x00000003;
26152 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26153 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
26154
26155 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
26156 /* Add or substract 0.5 in order to round to nearest integer */
26157 CAN_Sgn.UnsignedSgn = (UInt32)
26158 (( L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl ) + 0.5);
26159 CAN_Sgn.UnsignedSgn &= 0x000000FF;
26160 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
26161
26162 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
26163 /* Add or substract 0.5 in order to round to nearest integer */
26164 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.HaltBrakeSwitch ) + 0.5);
26165 CAN_Sgn.UnsignedSgn &= 0x00000003;
26166 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
26167 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26168
26169 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
26170 /* Add or substract 0.5 in order to round to nearest integer */
26171 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TrailerABSStatus ) + 0.5);
26172 CAN_Sgn.UnsignedSgn &= 0x00000003;
26173 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
26174 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26175
26176 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
26177 /* Add or substract 0.5 in order to round to nearest integer */
26178 CAN_Sgn.UnsignedSgn = (UInt32)
26179 (( L4_MABX_B.TrctrMntdTrilerABSWarningSignal ) + 0.5);
26180 CAN_Sgn.UnsignedSgn &= 0x00000003;
26181 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
26182 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
26183 }
26184
26185 /* mask unused bits with '1' */
26186 CAN_Msg[7] |= 0x03;
26187
26188 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
26189 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B], 8,
26190 &(CAN_Msg[0]), delayTime);
26191 }
26192 }
26193
26194 /* End of Outputs for SubSystem: '<S889>/EBC1_TX' */
26195
26196 /* End of Outputs for SubSystem: '<S824>/CAN_TX_100ms' */
26197
26198 /* DiscretePulseGenerator: '<S1053>/Flash' */
26199 L4_MABX_B.Flash = (L4_MABX_DW.clockTickCounter_n < L4_MABX_P.Flash_Duty) &&
26200 (L4_MABX_DW.clockTickCounter_n >= 0) ? L4_MABX_P.Flash_Amp : 0.0;
26201 if (L4_MABX_DW.clockTickCounter_n >= L4_MABX_P.Flash_Period - 1.0) {
26202 L4_MABX_DW.clockTickCounter_n = 0;
26203 } else {
26204 L4_MABX_DW.clockTickCounter_n++;
26205 }
26206
26207 /* End of DiscretePulseGenerator: '<S1053>/Flash' */
26208 /* user code (Output function Trailer for TID3) */
26209
26210 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26211 /* EventChannel: 0 */
26212 if (tid == 0) {
26213 DSXCP_service(0);
26214 }
26215
26216 /* If subsystem generates rate grouping Output functions,
26217 * when tid is used in Output function for one rate,
26218 * all Output functions include tid as a local variable.
26219 * As result, some Output functions may have unused tid.
26220 */
26221 UNUSED_PARAMETER(tid);
26222}
26223
26224/* Model update function for TID3 */
26225void L4_MABX_update3(void) /* Sample time: [0.1s, 0.0s] */
26226{
26227 /* Update for Atomic SubSystem: '<S824>/CAN_TX_100ms' */
26228
26229 /* Update for Enabled SubSystem: '<S861>/Rolling_15_counter' incorporates:
26230 * EnablePort: '<S903>/Enable'
26231 */
26232 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
26233 /* Update for UnitDelay: '<S903>/Unit_Delay' */
26234 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_B.FixPtSwitch;
26235 }
26236
26237 /* End of Update for SubSystem: '<S861>/Rolling_15_counter' */
26238
26239 /* End of Update for SubSystem: '<S824>/CAN_TX_100ms' */
26240
26241 /* Update for RateTransition: '<S1053>/TmpRTBAtANDInport1' */
26242 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 = L4_MABX_B.Flash;
26243}
26244
26245/* Model output function for TID4 */
26246void L4_MABX_output4(void) /* Sample time: [0.25s, 0.0s] */
26247{
26248 int_T tid = 4;
26249
26250 /* user code (Output function Trailer for TID4) */
26251
26252 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26253 /* EventChannel: 0 */
26254 if (tid == 0) {
26255 DSXCP_service(0);
26256 }
26257
26258 /* If subsystem generates rate grouping Output functions,
26259 * when tid is used in Output function for one rate,
26260 * all Output functions include tid as a local variable.
26261 * As result, some Output functions may have unused tid.
26262 */
26263 UNUSED_PARAMETER(tid);
26264}
26265
26266/* Model update function for TID4 */
26267void L4_MABX_update4(void) /* Sample time: [0.25s, 0.0s] */
26268{
26269 /* (no update code required) */
26270}
26271
26272/* Model output function for TID5 */
26273void L4_MABX_output5(void) /* Sample time: [0.5s, 0.0s] */
26274{
26275 int_T tid = 5;
26276 boolean_T zcEvent;
26277 uint32_T q0;
26278 uint32_T qY;
26279
26280 /* S-Function (rti_commonblock): '<S28>/S-Function1' */
26281 /* This comment workarounds a code generation problem */
26282
26283 /* dSPACE RTICAN Status block */
26284 /* ... read status variables of the CAN microcontroller */
26285 {
26286 UInt32 loop_counter, memory, j;
26287 for (j=0;j<=9;j++) {
26288 rtican_type1_tq_error[0][6] = can_tp1_service_read
26289 (can_type1_service_M1_C1[j]);
26290 loop_counter = 0;
26291 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26292 (can_type1_service_M1_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26293 loop_counter++;
26294 if (loop_counter > MAX_LOOP) {
26295 memory = rtican_type1_error_level;
26296 rtican_type1_error_level = 1;
26297 rtican_type1_tq_err_sig(0, 6);
26298 rtican_type1_error_level = memory;
26299 break;
26300 }
26301 }
26302
26303 if (j==CANTP1_M1_C1_RXLost) {
26304 rtican_type1_tq_error[0][6] = can_tp1_service_read
26305 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]);
26306 loop_counter = 0;
26307 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26308 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]))==
26309 DSMCOM_BUFFER_OVERFLOW) {
26310 loop_counter++;
26311 if (loop_counter > MAX_LOOP) {
26312 memory = rtican_type1_error_level;
26313 rtican_type1_error_level = 1;
26314 rtican_type1_tq_err_sig(0, 6);
26315 rtican_type1_error_level = memory;
26316 break;
26317 }
26318 }
26319 }
26320 }
26321
26322 L4_MABX_B.SFunction1_o1_kx = (UInt32)
26323 can_type1_service_M1_C1[CANTP1_M1_C1_Status]->data0;
26324 DIAG_CAN1_Count_Stuff_Errors = (UInt32)
26325 can_type1_service_M1_C1[CANTP1_M1_C1_StuffErrors]->data0;
26326 DIAG_CAN1_Count_Format_Errors = (UInt32)
26327 can_type1_service_M1_C1[CANTP1_M1_C1_FormatErrors]->data0;
26328 DIAG_CAN1_Count_Ack_Errors = (UInt32)
26329 can_type1_service_M1_C1[CANTP1_M1_C1_AckErrors]->data0;
26330 DIAG_CAN1_Count_Bit0_Errors = (UInt32)
26331 can_type1_service_M1_C1[CANTP1_M1_C1_Bit0Errors]->data0;
26332 DIAG_CAN1_Count_Bit1_Errors = (UInt32)
26333 can_type1_service_M1_C1[CANTP1_M1_C1_Bit1Errors]->data0;
26334 DIAG_CAN1_Count_CRC_Errors = (UInt32)
26335 can_type1_service_M1_C1[CANTP1_M1_C1_CRCErrors]->data0;
26336 DIAG_CAN1_Count_RX_Lost = (UInt32)
26337 (can_type1_service_M1_C1[CANTP1_M1_C1_RXLost]->data0 +
26338 can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]->data0);
26339 DIAG_CAN1_Count_RX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_RXOK
26340 ]->data0;
26341 DIAG_CAN1_Count_TX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_TXOK
26342 ]->data0;
26343 }
26344
26345 /* DataTypeConversion: '<S1>/Data Type Conversion' */
26346 DIAG_CAN1_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26347 ((int32_T)L4_MABX_B.SFunction1_o1_kx);
26348
26349 /* RelationalOperator: '<S22>/Operator' incorporates:
26350 * Constant: '<S1>/Constant'
26351 */
26352 L4_MABX_B.Operator_eu = (L4_MABX_P.Constant_Value_cq == DIAG_CAN1_Status);
26353
26354 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
26355 * EnablePort: '<S11>/Enable'
26356 */
26357 if (L4_MABX_B.Operator_eu) {
26358 /* Reshape: '<S30>/Reshape' incorporates:
26359 * Constant: '<S30>/Constant'
26360 */
26361 L4_MABX_B.Reshape_g[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[0];
26362 L4_MABX_B.Reshape_g[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[1];
26363
26364 /* UnitDelay: '<S30>/Unit_Delay' */
26365 L4_MABX_B.Unit_Delay_h4 = L4_MABX_DW.Unit_Delay_DSTATE_f1;
26366
26367 /* UnitDelay: '<S31>/Unit Delay' */
26368 L4_MABX_B.UnitDelay_f = L4_MABX_DW.UnitDelay_DSTATE_j;
26369
26370 /* Switch: '<S34>/Switch1' incorporates:
26371 * Constant: '<S31>/E'
26372 * Constant: '<S31>/IV'
26373 * Switch: '<S33>/Switch1'
26374 */
26375 if (L4_MABX_B.Unit_Delay_h4) {
26376 L4_MABX_B.Switch1_o = L4_MABX_P.IV_Value_m;
26377 } else {
26378 if (L4_MABX_P.E_Value) {
26379 /* Sum: '<S31>/Subtract' incorporates:
26380 * Constant: '<S31>/Constant'
26381 * Switch: '<S33>/Switch1'
26382 */
26383 q0 = L4_MABX_P.Constant_Value_jc;
26384 qY = q0 + L4_MABX_B.UnitDelay_f;
26385 if (qY < q0) {
26386 qY = MAX_uint32_T;
26387 }
26388
26389 L4_MABX_B.Subtract_ot = qY;
26390
26391 /* End of Sum: '<S31>/Subtract' */
26392
26393 /* Switch: '<S33>/Switch1' */
26394 L4_MABX_B.Switch1_a = L4_MABX_B.Subtract_ot;
26395 } else {
26396 /* Switch: '<S33>/Switch1' */
26397 L4_MABX_B.Switch1_a = L4_MABX_B.UnitDelay_f;
26398 }
26399
26400 L4_MABX_B.Switch1_o = L4_MABX_B.Switch1_a;
26401 }
26402
26403 /* End of Switch: '<S34>/Switch1' */
26404
26405 /* Selector: '<S30>/Selector' */
26406 L4_MABX_B.Selector_d = L4_MABX_B.Reshape_g[(int32_T)L4_MABX_B.Switch1_o - 1];
26407
26408 /* Outputs for Triggered SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' incorporates:
26409 * TriggerPort: '<S29>/Trigger'
26410 */
26411 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE == POS_ZCSIG) !=
26412 (int32_T)L4_MABX_B.Selector_d) &&
26413 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE !=
26414 UNINITIALIZED_ZCSIG));
26415 if (zcEvent) {
26416 /* S-Function (rti_commonblock): '<S29>/S-Function1' */
26417 /* This comment workarounds a code generation problem */
26418
26419 /* dSPACE RTICAN Bus Off Recovery block */
26420 /* ... Perform software-reset of the CAN microcontroller */
26421 {
26422 UInt32 loop_counter, memory;
26423 loop_counter = 0;
26424 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
26425 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26426 loop_counter++;
26427 if (loop_counter > MAX_LOOP) {
26428 memory = rtican_type1_error_level;
26429 rtican_type1_error_level = 1;
26430 rtican_type1_tq_err_sig(0, 0);
26431 rtican_type1_error_level = memory;
26432 break;
26433 }
26434 }
26435
26436 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
26437 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26438 loop_counter++;
26439 if (loop_counter > MAX_LOOP) {
26440 memory = rtican_type1_error_level;
26441 rtican_type1_error_level = 1;
26442 rtican_type1_tq_err_sig(0, 0);
26443 rtican_type1_error_level = memory;
26444 break;
26445 }
26446 }
26447 }
26448 }
26449
26450 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = L4_MABX_B.Selector_d;
26451
26452 /* End of Outputs for SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' */
26453
26454 /* RelationalOperator: '<S32>/Operator' */
26455 L4_MABX_B.Operator_f5 = (L4_MABX_B.Switch1_o == L4_MABX_ConstB.Width_p);
26456 }
26457
26458 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
26459
26460 /* S-Function (rti_commonblock): '<S20>/S-Function1' */
26461 /* This comment workarounds a code generation problem */
26462
26463 /* dSPACE RTICAN Status block */
26464 /* ... read status variables of the CAN microcontroller */
26465 {
26466 UInt32 loop_counter, memory, j;
26467 for (j=0;j<=9;j++) {
26468 rtican_type1_tq_error[2][6] = can_tp1_service_read
26469 (can_type1_service_M3_C1[j]);
26470 loop_counter = 0;
26471 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26472 (can_type1_service_M3_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26473 loop_counter++;
26474 if (loop_counter > MAX_LOOP) {
26475 memory = rtican_type1_error_level;
26476 rtican_type1_error_level = 1;
26477 rtican_type1_tq_err_sig(2, 6);
26478 rtican_type1_error_level = memory;
26479 break;
26480 }
26481 }
26482
26483 if (j==CANTP1_M3_C1_RXLost) {
26484 rtican_type1_tq_error[2][6] = can_tp1_service_read
26485 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]);
26486 loop_counter = 0;
26487 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26488 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]))==
26489 DSMCOM_BUFFER_OVERFLOW) {
26490 loop_counter++;
26491 if (loop_counter > MAX_LOOP) {
26492 memory = rtican_type1_error_level;
26493 rtican_type1_error_level = 1;
26494 rtican_type1_tq_err_sig(2, 6);
26495 rtican_type1_error_level = memory;
26496 break;
26497 }
26498 }
26499 }
26500 }
26501
26502 L4_MABX_B.SFunction1_o1_g3 = (UInt32)
26503 can_type1_service_M3_C1[CANTP1_M3_C1_Status]->data0;
26504 DIAG_CAN5_Count_Stuff_Errors = (UInt32)
26505 can_type1_service_M3_C1[CANTP1_M3_C1_StuffErrors]->data0;
26506 DIAG_CAN5_Count_Format_Errors = (UInt32)
26507 can_type1_service_M3_C1[CANTP1_M3_C1_FormatErrors]->data0;
26508 DIAG_CAN5_Count_Ack_Errors = (UInt32)
26509 can_type1_service_M3_C1[CANTP1_M3_C1_AckErrors]->data0;
26510 DIAG_CAN5_Count_Bit0_Errors = (UInt32)
26511 can_type1_service_M3_C1[CANTP1_M3_C1_Bit0Errors]->data0;
26512 DIAG_CAN5_Count_Bit1_Errors = (UInt32)
26513 can_type1_service_M3_C1[CANTP1_M3_C1_Bit1Errors]->data0;
26514 DIAG_CAN5_Count_CRC_Errors = (UInt32)
26515 can_type1_service_M3_C1[CANTP1_M3_C1_CRCErrors]->data0;
26516 DIAG_CAN5_Count_RX_Lost = (UInt32)
26517 (can_type1_service_M3_C1[CANTP1_M3_C1_RXLost]->data0 +
26518 can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]->data0);
26519 DIAG_CAN5_Count_RX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_RXOK
26520 ]->data0;
26521 DIAG_CAN5_Count_TX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_TXOK
26522 ]->data0;
26523 }
26524
26525 /* DataTypeConversion: '<S1>/Data Type Conversion5' */
26526 DIAG_CAN5_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26527 ((int32_T)L4_MABX_B.SFunction1_o1_g3);
26528
26529 /* RelationalOperator: '<S26>/Operator' incorporates:
26530 * Constant: '<S1>/Constant4'
26531 */
26532 L4_MABX_B.Operator_msz = (L4_MABX_P.Constant4_Value_np == DIAG_CAN5_Status);
26533
26534 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
26535 * EnablePort: '<S15>/Enable'
26536 */
26537 if (L4_MABX_B.Operator_msz) {
26538 /* Reshape: '<S54>/Reshape' incorporates:
26539 * Constant: '<S54>/Constant'
26540 */
26541 L4_MABX_B.Reshape_a[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[0];
26542 L4_MABX_B.Reshape_a[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[1];
26543
26544 /* UnitDelay: '<S54>/Unit_Delay' */
26545 L4_MABX_B.Unit_Delay_p1 = L4_MABX_DW.Unit_Delay_DSTATE_i5;
26546
26547 /* UnitDelay: '<S55>/Unit Delay' */
26548 L4_MABX_B.UnitDelay_j = L4_MABX_DW.UnitDelay_DSTATE_p;
26549
26550 /* Switch: '<S58>/Switch1' incorporates:
26551 * Constant: '<S55>/E'
26552 * Constant: '<S55>/IV'
26553 * Switch: '<S57>/Switch1'
26554 */
26555 if (L4_MABX_B.Unit_Delay_p1) {
26556 L4_MABX_B.Switch1_kd = L4_MABX_P.IV_Value_h;
26557 } else {
26558 if (L4_MABX_P.E_Value_db) {
26559 /* Sum: '<S55>/Subtract' incorporates:
26560 * Constant: '<S55>/Constant'
26561 * Switch: '<S57>/Switch1'
26562 */
26563 q0 = L4_MABX_P.Constant_Value_jg;
26564 qY = q0 + L4_MABX_B.UnitDelay_j;
26565 if (qY < q0) {
26566 qY = MAX_uint32_T;
26567 }
26568
26569 L4_MABX_B.Subtract_m = qY;
26570
26571 /* End of Sum: '<S55>/Subtract' */
26572
26573 /* Switch: '<S57>/Switch1' */
26574 L4_MABX_B.Switch1_l = L4_MABX_B.Subtract_m;
26575 } else {
26576 /* Switch: '<S57>/Switch1' */
26577 L4_MABX_B.Switch1_l = L4_MABX_B.UnitDelay_j;
26578 }
26579
26580 L4_MABX_B.Switch1_kd = L4_MABX_B.Switch1_l;
26581 }
26582
26583 /* End of Switch: '<S58>/Switch1' */
26584
26585 /* Selector: '<S54>/Selector' */
26586 L4_MABX_B.Selector_p = L4_MABX_B.Reshape_a[(int32_T)L4_MABX_B.Switch1_kd - 1];
26587
26588 /* Outputs for Triggered SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' incorporates:
26589 * TriggerPort: '<S53>/Trigger'
26590 */
26591 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE == POS_ZCSIG) !=
26592 (int32_T)L4_MABX_B.Selector_p) &&
26593 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE !=
26594 UNINITIALIZED_ZCSIG));
26595 if (zcEvent) {
26596 /* S-Function (rti_commonblock): '<S53>/S-Function1' */
26597 /* This comment workarounds a code generation problem */
26598
26599 /* dSPACE RTICAN Bus Off Recovery block */
26600 /* ... Perform software-reset of the CAN microcontroller */
26601 {
26602 UInt32 loop_counter, memory;
26603 loop_counter = 0;
26604 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26605 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26606 loop_counter++;
26607 if (loop_counter > MAX_LOOP) {
26608 memory = rtican_type1_error_level;
26609 rtican_type1_error_level = 1;
26610 rtican_type1_tq_err_sig(2, 0);
26611 rtican_type1_error_level = memory;
26612 break;
26613 }
26614 }
26615
26616 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26617 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26618 loop_counter++;
26619 if (loop_counter > MAX_LOOP) {
26620 memory = rtican_type1_error_level;
26621 rtican_type1_error_level = 1;
26622 rtican_type1_tq_err_sig(2, 0);
26623 rtican_type1_error_level = memory;
26624 break;
26625 }
26626 }
26627 }
26628 }
26629
26630 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = L4_MABX_B.Selector_p;
26631
26632 /* End of Outputs for SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' */
26633
26634 /* RelationalOperator: '<S56>/Operator' */
26635 L4_MABX_B.Operator_ho = (L4_MABX_B.Switch1_kd == L4_MABX_ConstB.Width_a);
26636 }
26637
26638 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
26639
26640 /* S-Function (rti_commonblock): '<S21>/S-Function1' */
26641 /* This comment workarounds a code generation problem */
26642
26643 /* dSPACE RTICAN Status block */
26644 /* ... read status variables of the CAN microcontroller */
26645 {
26646 UInt32 loop_counter, memory, j;
26647 for (j=0;j<=9;j++) {
26648 rtican_type1_tq_error[2][6] = can_tp1_service_read
26649 (can_type1_service_M3_C2[j]);
26650 loop_counter = 0;
26651 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26652 (can_type1_service_M3_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26653 loop_counter++;
26654 if (loop_counter > MAX_LOOP) {
26655 memory = rtican_type1_error_level;
26656 rtican_type1_error_level = 1;
26657 rtican_type1_tq_err_sig(2, 6);
26658 rtican_type1_error_level = memory;
26659 break;
26660 }
26661 }
26662
26663 if (j==CANTP1_M3_C2_RXLost) {
26664 rtican_type1_tq_error[2][6] = can_tp1_service_read
26665 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]);
26666 loop_counter = 0;
26667 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26668 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]))==
26669 DSMCOM_BUFFER_OVERFLOW) {
26670 loop_counter++;
26671 if (loop_counter > MAX_LOOP) {
26672 memory = rtican_type1_error_level;
26673 rtican_type1_error_level = 1;
26674 rtican_type1_tq_err_sig(2, 6);
26675 rtican_type1_error_level = memory;
26676 break;
26677 }
26678 }
26679 }
26680 }
26681
26682 L4_MABX_B.SFunction1_o1_ar = (UInt32)
26683 can_type1_service_M3_C2[CANTP1_M3_C2_Status]->data0;
26684 DIAG_CAN6_Count_Stuff_Errors = (UInt32)
26685 can_type1_service_M3_C2[CANTP1_M3_C2_StuffErrors]->data0;
26686 DIAG_CAN6_Count_Format_Errors = (UInt32)
26687 can_type1_service_M3_C2[CANTP1_M3_C2_FormatErrors]->data0;
26688 DIAG_CAN6_Count_Ack_Errors = (UInt32)
26689 can_type1_service_M3_C2[CANTP1_M3_C2_AckErrors]->data0;
26690 DIAG_CAN6_Count_Bit0_Errors = (UInt32)
26691 can_type1_service_M3_C2[CANTP1_M3_C2_Bit0Errors]->data0;
26692 DIAG_CAN6_Count_Bit1_Errors = (UInt32)
26693 can_type1_service_M3_C2[CANTP1_M3_C2_Bit1Errors]->data0;
26694 DIAG_CAN6_Count_CRC_Errors = (UInt32)
26695 can_type1_service_M3_C2[CANTP1_M3_C2_CRCErrors]->data0;
26696 DIAG_CAN6_Count_RX_Lost = (UInt32)
26697 (can_type1_service_M3_C2[CANTP1_M3_C2_RXLost]->data0 +
26698 can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]->data0);
26699 DIAG_CAN6_Count_RX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_RXOK
26700 ]->data0;
26701 DIAG_CAN6_Count_TX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_TXOK
26702 ]->data0;
26703 }
26704
26705 /* DataTypeConversion: '<S1>/Data Type Conversion4' */
26706 DIAG_CAN6_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26707 ((int32_T)L4_MABX_B.SFunction1_o1_ar);
26708
26709 /* RelationalOperator: '<S27>/Operator' incorporates:
26710 * Constant: '<S1>/Constant5'
26711 */
26712 L4_MABX_B.Operator_fv = (L4_MABX_P.Constant5_Value_m == DIAG_CAN6_Status);
26713
26714 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
26715 * EnablePort: '<S16>/Enable'
26716 */
26717 if (L4_MABX_B.Operator_fv) {
26718 /* Reshape: '<S60>/Reshape' incorporates:
26719 * Constant: '<S60>/Constant'
26720 */
26721 L4_MABX_B.Reshape_j4[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[0];
26722 L4_MABX_B.Reshape_j4[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[1];
26723
26724 /* UnitDelay: '<S60>/Unit_Delay' */
26725 L4_MABX_B.Unit_Delay_mw = L4_MABX_DW.Unit_Delay_DSTATE_l5;
26726
26727 /* UnitDelay: '<S61>/Unit Delay' */
26728 L4_MABX_B.UnitDelay_av = L4_MABX_DW.UnitDelay_DSTATE_dr;
26729
26730 /* Switch: '<S64>/Switch1' incorporates:
26731 * Constant: '<S61>/E'
26732 * Constant: '<S61>/IV'
26733 * Switch: '<S63>/Switch1'
26734 */
26735 if (L4_MABX_B.Unit_Delay_mw) {
26736 L4_MABX_B.Switch1_h = L4_MABX_P.IV_Value_ey;
26737 } else {
26738 if (L4_MABX_P.E_Value_c) {
26739 /* Sum: '<S61>/Subtract' incorporates:
26740 * Constant: '<S61>/Constant'
26741 * Switch: '<S63>/Switch1'
26742 */
26743 q0 = L4_MABX_P.Constant_Value_iu;
26744 qY = q0 + L4_MABX_B.UnitDelay_av;
26745 if (qY < q0) {
26746 qY = MAX_uint32_T;
26747 }
26748
26749 L4_MABX_B.Subtract_fc = qY;
26750
26751 /* End of Sum: '<S61>/Subtract' */
26752
26753 /* Switch: '<S63>/Switch1' */
26754 L4_MABX_B.Switch1_b = L4_MABX_B.Subtract_fc;
26755 } else {
26756 /* Switch: '<S63>/Switch1' */
26757 L4_MABX_B.Switch1_b = L4_MABX_B.UnitDelay_av;
26758 }
26759
26760 L4_MABX_B.Switch1_h = L4_MABX_B.Switch1_b;
26761 }
26762
26763 /* End of Switch: '<S64>/Switch1' */
26764
26765 /* Selector: '<S60>/Selector' */
26766 L4_MABX_B.Selector_h = L4_MABX_B.Reshape_j4[(int32_T)L4_MABX_B.Switch1_h - 1];
26767
26768 /* Outputs for Triggered SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' incorporates:
26769 * TriggerPort: '<S59>/Trigger'
26770 */
26771 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE == POS_ZCSIG) !=
26772 (int32_T)L4_MABX_B.Selector_h) &&
26773 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE !=
26774 UNINITIALIZED_ZCSIG));
26775 if (zcEvent) {
26776 /* S-Function (rti_commonblock): '<S59>/S-Function1' */
26777 /* This comment workarounds a code generation problem */
26778
26779 /* dSPACE RTICAN Bus Off Recovery block */
26780 /* ... Perform software-reset of the CAN microcontroller */
26781 {
26782 UInt32 loop_counter, memory;
26783 loop_counter = 0;
26784 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26785 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26786 loop_counter++;
26787 if (loop_counter > MAX_LOOP) {
26788 memory = rtican_type1_error_level;
26789 rtican_type1_error_level = 1;
26790 rtican_type1_tq_err_sig(2, 0);
26791 rtican_type1_error_level = memory;
26792 break;
26793 }
26794 }
26795
26796 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26797 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26798 loop_counter++;
26799 if (loop_counter > MAX_LOOP) {
26800 memory = rtican_type1_error_level;
26801 rtican_type1_error_level = 1;
26802 rtican_type1_tq_err_sig(2, 0);
26803 rtican_type1_error_level = memory;
26804 break;
26805 }
26806 }
26807 }
26808 }
26809
26810 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = L4_MABX_B.Selector_h;
26811
26812 /* End of Outputs for SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' */
26813
26814 /* RelationalOperator: '<S62>/Operator' */
26815 L4_MABX_B.Operator_bg = (L4_MABX_B.Switch1_h == L4_MABX_ConstB.Width);
26816 }
26817
26818 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
26819
26820 /* S-Function (rti_commonblock): '<S18>/S-Function1' */
26821 /* This comment workarounds a code generation problem */
26822
26823 /* dSPACE RTICAN Status block */
26824 /* ... read status variables of the CAN microcontroller */
26825 {
26826 UInt32 loop_counter, memory, j;
26827 for (j=0;j<=9;j++) {
26828 rtican_type1_tq_error[1][6] = can_tp1_service_read
26829 (can_type1_service_M2_C1[j]);
26830 loop_counter = 0;
26831 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26832 (can_type1_service_M2_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26833 loop_counter++;
26834 if (loop_counter > MAX_LOOP) {
26835 memory = rtican_type1_error_level;
26836 rtican_type1_error_level = 1;
26837 rtican_type1_tq_err_sig(1, 6);
26838 rtican_type1_error_level = memory;
26839 break;
26840 }
26841 }
26842
26843 if (j==CANTP1_M2_C1_RXLost) {
26844 rtican_type1_tq_error[1][6] = can_tp1_service_read
26845 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]);
26846 loop_counter = 0;
26847 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26848 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]))==
26849 DSMCOM_BUFFER_OVERFLOW) {
26850 loop_counter++;
26851 if (loop_counter > MAX_LOOP) {
26852 memory = rtican_type1_error_level;
26853 rtican_type1_error_level = 1;
26854 rtican_type1_tq_err_sig(1, 6);
26855 rtican_type1_error_level = memory;
26856 break;
26857 }
26858 }
26859 }
26860 }
26861
26862 L4_MABX_B.SFunction1_o1_h4 = (UInt32)
26863 can_type1_service_M2_C1[CANTP1_M2_C1_Status]->data0;
26864 DIAG_CAN3_Count_Stuff_Errors = (UInt32)
26865 can_type1_service_M2_C1[CANTP1_M2_C1_StuffErrors]->data0;
26866 DIAG_CAN3_Count_Format_Errors = (UInt32)
26867 can_type1_service_M2_C1[CANTP1_M2_C1_FormatErrors]->data0;
26868 DIAG_CAN3_Count_Ack_Errors = (UInt32)
26869 can_type1_service_M2_C1[CANTP1_M2_C1_AckErrors]->data0;
26870 DIAG_CAN3_Count_Bit0_Errors = (UInt32)
26871 can_type1_service_M2_C1[CANTP1_M2_C1_Bit0Errors]->data0;
26872 DIAG_CAN3_Count_Bit1_Errors = (UInt32)
26873 can_type1_service_M2_C1[CANTP1_M2_C1_Bit1Errors]->data0;
26874 DIAG_CAN3_Count_CRC_Errors = (UInt32)
26875 can_type1_service_M2_C1[CANTP1_M2_C1_CRCErrors]->data0;
26876 DIAG_CAN3_Count_RX_Lost = (UInt32)
26877 (can_type1_service_M2_C1[CANTP1_M2_C1_RXLost]->data0 +
26878 can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]->data0);
26879 DIAG_CAN3_Count_RX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_RXOK
26880 ]->data0;
26881 DIAG_CAN3_Count_TX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_TXOK
26882 ]->data0;
26883 }
26884
26885 /* DataTypeConversion: '<S1>/Data Type Conversion3' */
26886 DIAG_CAN3_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26887 ((int32_T)L4_MABX_B.SFunction1_o1_h4);
26888
26889 /* RelationalOperator: '<S24>/Operator' incorporates:
26890 * Constant: '<S1>/Constant1'
26891 */
26892 L4_MABX_B.Operator_bsh = (L4_MABX_P.Constant1_Value_c0 == DIAG_CAN3_Status);
26893
26894 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
26895 * EnablePort: '<S13>/Enable'
26896 */
26897 if (L4_MABX_B.Operator_bsh) {
26898 /* Reshape: '<S42>/Reshape' incorporates:
26899 * Constant: '<S42>/Constant'
26900 */
26901 L4_MABX_B.Reshape_i[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[0];
26902 L4_MABX_B.Reshape_i[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[1];
26903
26904 /* UnitDelay: '<S42>/Unit_Delay' */
26905 L4_MABX_B.Unit_Delay_m0 = L4_MABX_DW.Unit_Delay_DSTATE_h41;
26906
26907 /* UnitDelay: '<S43>/Unit Delay' */
26908 L4_MABX_B.UnitDelay_d = L4_MABX_DW.UnitDelay_DSTATE_dr4;
26909
26910 /* Switch: '<S46>/Switch1' incorporates:
26911 * Constant: '<S43>/E'
26912 * Constant: '<S43>/IV'
26913 * Switch: '<S45>/Switch1'
26914 */
26915 if (L4_MABX_B.Unit_Delay_m0) {
26916 L4_MABX_B.Switch1_k4 = L4_MABX_P.IV_Value_b;
26917 } else {
26918 if (L4_MABX_P.E_Value_d) {
26919 /* Sum: '<S43>/Subtract' incorporates:
26920 * Constant: '<S43>/Constant'
26921 * Switch: '<S45>/Switch1'
26922 */
26923 q0 = L4_MABX_P.Constant_Value_h3;
26924 qY = q0 + L4_MABX_B.UnitDelay_d;
26925 if (qY < q0) {
26926 qY = MAX_uint32_T;
26927 }
26928
26929 L4_MABX_B.Subtract_h = qY;
26930
26931 /* End of Sum: '<S43>/Subtract' */
26932
26933 /* Switch: '<S45>/Switch1' */
26934 L4_MABX_B.Switch1_fr = L4_MABX_B.Subtract_h;
26935 } else {
26936 /* Switch: '<S45>/Switch1' */
26937 L4_MABX_B.Switch1_fr = L4_MABX_B.UnitDelay_d;
26938 }
26939
26940 L4_MABX_B.Switch1_k4 = L4_MABX_B.Switch1_fr;
26941 }
26942
26943 /* End of Switch: '<S46>/Switch1' */
26944
26945 /* Selector: '<S42>/Selector' */
26946 L4_MABX_B.Selector_g = L4_MABX_B.Reshape_i[(int32_T)L4_MABX_B.Switch1_k4 - 1];
26947
26948 /* Outputs for Triggered SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' incorporates:
26949 * TriggerPort: '<S41>/Trigger'
26950 */
26951 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE == POS_ZCSIG) !=
26952 (int32_T)L4_MABX_B.Selector_g) &&
26953 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE !=
26954 UNINITIALIZED_ZCSIG));
26955 if (zcEvent) {
26956 /* S-Function (rti_commonblock): '<S41>/S-Function1' */
26957 /* This comment workarounds a code generation problem */
26958
26959 /* dSPACE RTICAN Bus Off Recovery block */
26960 /* ... Perform software-reset of the CAN microcontroller */
26961 {
26962 UInt32 loop_counter, memory;
26963 loop_counter = 0;
26964 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
26965 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26966 loop_counter++;
26967 if (loop_counter > MAX_LOOP) {
26968 memory = rtican_type1_error_level;
26969 rtican_type1_error_level = 1;
26970 rtican_type1_tq_err_sig(1, 0);
26971 rtican_type1_error_level = memory;
26972 break;
26973 }
26974 }
26975
26976 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
26977 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26978 loop_counter++;
26979 if (loop_counter > MAX_LOOP) {
26980 memory = rtican_type1_error_level;
26981 rtican_type1_error_level = 1;
26982 rtican_type1_tq_err_sig(1, 0);
26983 rtican_type1_error_level = memory;
26984 break;
26985 }
26986 }
26987 }
26988 }
26989
26990 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = L4_MABX_B.Selector_g;
26991
26992 /* End of Outputs for SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' */
26993
26994 /* RelationalOperator: '<S44>/Operator' */
26995 L4_MABX_B.Operator_dh = (L4_MABX_B.Switch1_k4 == L4_MABX_ConstB.Width_iw);
26996 }
26997
26998 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
26999
27000 /* S-Function (rti_commonblock): '<S19>/S-Function1' */
27001 /* This comment workarounds a code generation problem */
27002
27003 /* dSPACE RTICAN Status block */
27004 /* ... read status variables of the CAN microcontroller */
27005 {
27006 UInt32 loop_counter, memory, j;
27007 for (j=0;j<=9;j++) {
27008 rtican_type1_tq_error[1][6] = can_tp1_service_read
27009 (can_type1_service_M2_C2[j]);
27010 loop_counter = 0;
27011 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27012 (can_type1_service_M2_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
27013 loop_counter++;
27014 if (loop_counter > MAX_LOOP) {
27015 memory = rtican_type1_error_level;
27016 rtican_type1_error_level = 1;
27017 rtican_type1_tq_err_sig(1, 6);
27018 rtican_type1_error_level = memory;
27019 break;
27020 }
27021 }
27022
27023 if (j==CANTP1_M2_C2_RXLost) {
27024 rtican_type1_tq_error[1][6] = can_tp1_service_read
27025 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]);
27026 loop_counter = 0;
27027 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
27028 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]))==
27029 DSMCOM_BUFFER_OVERFLOW) {
27030 loop_counter++;
27031 if (loop_counter > MAX_LOOP) {
27032 memory = rtican_type1_error_level;
27033 rtican_type1_error_level = 1;
27034 rtican_type1_tq_err_sig(1, 6);
27035 rtican_type1_error_level = memory;
27036 break;
27037 }
27038 }
27039 }
27040 }
27041
27042 L4_MABX_B.SFunction1_o1_ma = (UInt32)
27043 can_type1_service_M2_C2[CANTP1_M2_C2_Status]->data0;
27044 DIAG_CAN4_Count_Stuff_Errors = (UInt32)
27045 can_type1_service_M2_C2[CANTP1_M2_C2_StuffErrors]->data0;
27046 DIAG_CAN4_Count_Format_Errors = (UInt32)
27047 can_type1_service_M2_C2[CANTP1_M2_C2_FormatErrors]->data0;
27048 DIAG_CAN4_Count_Ack_Errors = (UInt32)
27049 can_type1_service_M2_C2[CANTP1_M2_C2_AckErrors]->data0;
27050 DIAG_CAN4_Count_Bit0_Errors = (UInt32)
27051 can_type1_service_M2_C2[CANTP1_M2_C2_Bit0Errors]->data0;
27052 DIAG_CAN4_Count_Bit1_Errors = (UInt32)
27053 can_type1_service_M2_C2[CANTP1_M2_C2_Bit1Errors]->data0;
27054 DIAG_CAN4_Count_CRC_Errors = (UInt32)
27055 can_type1_service_M2_C2[CANTP1_M2_C2_CRCErrors]->data0;
27056 DIAG_CAN4_Count_RX_Lost = (UInt32)
27057 (can_type1_service_M2_C2[CANTP1_M2_C2_RXLost]->data0 +
27058 can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]->data0);
27059 DIAG_CAN4_Count_RX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_RXOK
27060 ]->data0;
27061 DIAG_CAN4_Count_TX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_TXOK
27062 ]->data0;
27063 }
27064
27065 /* DataTypeConversion: '<S1>/Data Type Conversion2' */
27066 DIAG_CAN4_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27067 ((int32_T)L4_MABX_B.SFunction1_o1_ma);
27068
27069 /* RelationalOperator: '<S25>/Operator' incorporates:
27070 * Constant: '<S1>/Constant3'
27071 */
27072 L4_MABX_B.Operator_bw = (L4_MABX_P.Constant3_Value_h == DIAG_CAN4_Status);
27073
27074 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27075 * EnablePort: '<S14>/Enable'
27076 */
27077 if (L4_MABX_B.Operator_bw) {
27078 /* Reshape: '<S48>/Reshape' incorporates:
27079 * Constant: '<S48>/Constant'
27080 */
27081 L4_MABX_B.Reshape_n[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[0];
27082 L4_MABX_B.Reshape_n[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[1];
27083
27084 /* UnitDelay: '<S48>/Unit_Delay' */
27085 L4_MABX_B.Unit_Delay_fl = L4_MABX_DW.Unit_Delay_DSTATE_mq;
27086
27087 /* UnitDelay: '<S49>/Unit Delay' */
27088 L4_MABX_B.UnitDelay_l = L4_MABX_DW.UnitDelay_DSTATE_h;
27089
27090 /* Switch: '<S52>/Switch1' incorporates:
27091 * Constant: '<S49>/E'
27092 * Constant: '<S49>/IV'
27093 * Switch: '<S51>/Switch1'
27094 */
27095 if (L4_MABX_B.Unit_Delay_fl) {
27096 L4_MABX_B.Switch1_ex = L4_MABX_P.IV_Value_k;
27097 } else {
27098 if (L4_MABX_P.E_Value_m) {
27099 /* Sum: '<S49>/Subtract' incorporates:
27100 * Constant: '<S49>/Constant'
27101 * Switch: '<S51>/Switch1'
27102 */
27103 q0 = L4_MABX_P.Constant_Value_o0;
27104 qY = q0 + L4_MABX_B.UnitDelay_l;
27105 if (qY < q0) {
27106 qY = MAX_uint32_T;
27107 }
27108
27109 L4_MABX_B.Subtract_f1 = qY;
27110
27111 /* End of Sum: '<S49>/Subtract' */
27112
27113 /* Switch: '<S51>/Switch1' */
27114 L4_MABX_B.Switch1_c4 = L4_MABX_B.Subtract_f1;
27115 } else {
27116 /* Switch: '<S51>/Switch1' */
27117 L4_MABX_B.Switch1_c4 = L4_MABX_B.UnitDelay_l;
27118 }
27119
27120 L4_MABX_B.Switch1_ex = L4_MABX_B.Switch1_c4;
27121 }
27122
27123 /* End of Switch: '<S52>/Switch1' */
27124
27125 /* Selector: '<S48>/Selector' */
27126 L4_MABX_B.Selector_i = L4_MABX_B.Reshape_n[(int32_T)L4_MABX_B.Switch1_ex - 1];
27127
27128 /* Outputs for Triggered SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' incorporates:
27129 * TriggerPort: '<S47>/Trigger'
27130 */
27131 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE == POS_ZCSIG) !=
27132 (int32_T)L4_MABX_B.Selector_i) &&
27133 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE !=
27134 UNINITIALIZED_ZCSIG));
27135 if (zcEvent) {
27136 /* S-Function (rti_commonblock): '<S47>/S-Function1' */
27137 /* This comment workarounds a code generation problem */
27138
27139 /* dSPACE RTICAN Bus Off Recovery block */
27140 /* ... Perform software-reset of the CAN microcontroller */
27141 {
27142 UInt32 loop_counter, memory;
27143 loop_counter = 0;
27144 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
27145 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27146 loop_counter++;
27147 if (loop_counter > MAX_LOOP) {
27148 memory = rtican_type1_error_level;
27149 rtican_type1_error_level = 1;
27150 rtican_type1_tq_err_sig(1, 0);
27151 rtican_type1_error_level = memory;
27152 break;
27153 }
27154 }
27155
27156 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
27157 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27158 loop_counter++;
27159 if (loop_counter > MAX_LOOP) {
27160 memory = rtican_type1_error_level;
27161 rtican_type1_error_level = 1;
27162 rtican_type1_tq_err_sig(1, 0);
27163 rtican_type1_error_level = memory;
27164 break;
27165 }
27166 }
27167 }
27168 }
27169
27170 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = L4_MABX_B.Selector_i;
27171
27172 /* End of Outputs for SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' */
27173
27174 /* RelationalOperator: '<S50>/Operator' */
27175 L4_MABX_B.Operator_ou = (L4_MABX_B.Switch1_ex == L4_MABX_ConstB.Width_i);
27176 }
27177
27178 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27179
27180 /* S-Function (rti_commonblock): '<S17>/S-Function1' */
27181 /* This comment workarounds a code generation problem */
27182
27183 /* dSPACE RTICAN Status block */
27184 /* ... read status variables of the CAN microcontroller */
27185 {
27186 UInt32 loop_counter, memory, j;
27187 for (j=0;j<=9;j++) {
27188 rtican_type1_tq_error[0][6] = can_tp1_service_read
27189 (can_type1_service_M1_C2[j]);
27190 loop_counter = 0;
27191 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27192 (can_type1_service_M1_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
27193 loop_counter++;
27194 if (loop_counter > MAX_LOOP) {
27195 memory = rtican_type1_error_level;
27196 rtican_type1_error_level = 1;
27197 rtican_type1_tq_err_sig(0, 6);
27198 rtican_type1_error_level = memory;
27199 break;
27200 }
27201 }
27202
27203 if (j==CANTP1_M1_C2_RXLost) {
27204 rtican_type1_tq_error[0][6] = can_tp1_service_read
27205 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]);
27206 loop_counter = 0;
27207 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27208 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]))==
27209 DSMCOM_BUFFER_OVERFLOW) {
27210 loop_counter++;
27211 if (loop_counter > MAX_LOOP) {
27212 memory = rtican_type1_error_level;
27213 rtican_type1_error_level = 1;
27214 rtican_type1_tq_err_sig(0, 6);
27215 rtican_type1_error_level = memory;
27216 break;
27217 }
27218 }
27219 }
27220 }
27221
27222 L4_MABX_B.SFunction1_o1_og = (UInt32)
27223 can_type1_service_M1_C2[CANTP1_M1_C2_Status]->data0;
27224 DIAG_CAN2_Count_Stuff_Errors = (UInt32)
27225 can_type1_service_M1_C2[CANTP1_M1_C2_StuffErrors]->data0;
27226 DIAG_CAN2_Count_Format_Errors = (UInt32)
27227 can_type1_service_M1_C2[CANTP1_M1_C2_FormatErrors]->data0;
27228 DIAG_CAN2_Count_Ack_Errors = (UInt32)
27229 can_type1_service_M1_C2[CANTP1_M1_C2_AckErrors]->data0;
27230 DIAG_CAN2_Count_Bit0_Errors = (UInt32)
27231 can_type1_service_M1_C2[CANTP1_M1_C2_Bit0Errors]->data0;
27232 DIAG_CAN2_Count_Bit1_Errors = (UInt32)
27233 can_type1_service_M1_C2[CANTP1_M1_C2_Bit1Errors]->data0;
27234 DIAG_CAN2_Count_CRC_Errors = (UInt32)
27235 can_type1_service_M1_C2[CANTP1_M1_C2_CRCErrors]->data0;
27236 DIAG_CAN2_Count_RX_Lost = (UInt32)
27237 (can_type1_service_M1_C2[CANTP1_M1_C2_RXLost]->data0 +
27238 can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]->data0);
27239 DIAG_CAN2_Count_RX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_RXOK
27240 ]->data0;
27241 DIAG_CAN2_Count_TX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_TXOK
27242 ]->data0;
27243 }
27244
27245 /* DataTypeConversion: '<S1>/Data Type Conversion1' */
27246 DIAG_CAN2_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27247 ((int32_T)L4_MABX_B.SFunction1_o1_og);
27248
27249 /* RelationalOperator: '<S23>/Operator' incorporates:
27250 * Constant: '<S1>/Constant2'
27251 */
27252 L4_MABX_B.Operator_eb = (L4_MABX_P.Constant2_Value_j == DIAG_CAN2_Status);
27253
27254 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27255 * EnablePort: '<S12>/Enable'
27256 */
27257 if (L4_MABX_B.Operator_eb) {
27258 /* Reshape: '<S36>/Reshape' incorporates:
27259 * Constant: '<S36>/Constant'
27260 */
27261 L4_MABX_B.Reshape_a5[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[0];
27262 L4_MABX_B.Reshape_a5[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[1];
27263
27264 /* UnitDelay: '<S36>/Unit_Delay' */
27265 L4_MABX_B.Unit_Delay_g1 = L4_MABX_DW.Unit_Delay_DSTATE_je;
27266
27267 /* UnitDelay: '<S37>/Unit Delay' */
27268 L4_MABX_B.UnitDelay_b = L4_MABX_DW.UnitDelay_DSTATE_b;
27269
27270 /* Switch: '<S40>/Switch1' incorporates:
27271 * Constant: '<S37>/E'
27272 * Constant: '<S37>/IV'
27273 * Switch: '<S39>/Switch1'
27274 */
27275 if (L4_MABX_B.Unit_Delay_g1) {
27276 L4_MABX_B.Switch1_iy = L4_MABX_P.IV_Value_e;
27277 } else {
27278 if (L4_MABX_P.E_Value_l) {
27279 /* Sum: '<S37>/Subtract' incorporates:
27280 * Constant: '<S37>/Constant'
27281 * Switch: '<S39>/Switch1'
27282 */
27283 q0 = L4_MABX_P.Constant_Value_ae;
27284 qY = q0 + L4_MABX_B.UnitDelay_b;
27285 if (qY < q0) {
27286 qY = MAX_uint32_T;
27287 }
27288
27289 L4_MABX_B.Subtract_nc = qY;
27290
27291 /* End of Sum: '<S37>/Subtract' */
27292
27293 /* Switch: '<S39>/Switch1' */
27294 L4_MABX_B.Switch1_hm = L4_MABX_B.Subtract_nc;
27295 } else {
27296 /* Switch: '<S39>/Switch1' */
27297 L4_MABX_B.Switch1_hm = L4_MABX_B.UnitDelay_b;
27298 }
27299
27300 L4_MABX_B.Switch1_iy = L4_MABX_B.Switch1_hm;
27301 }
27302
27303 /* End of Switch: '<S40>/Switch1' */
27304
27305 /* Selector: '<S36>/Selector' */
27306 L4_MABX_B.Selector_b = L4_MABX_B.Reshape_a5[(int32_T)L4_MABX_B.Switch1_iy -
27307 1];
27308
27309 /* Outputs for Triggered SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' incorporates:
27310 * TriggerPort: '<S35>/Trigger'
27311 */
27312 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE == POS_ZCSIG) !=
27313 (int32_T)L4_MABX_B.Selector_b) &&
27314 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE !=
27315 UNINITIALIZED_ZCSIG));
27316 if (zcEvent) {
27317 /* S-Function (rti_commonblock): '<S35>/S-Function1' */
27318 /* This comment workarounds a code generation problem */
27319
27320 /* dSPACE RTICAN Bus Off Recovery block */
27321 /* ... Perform software-reset of the CAN microcontroller */
27322 {
27323 UInt32 loop_counter, memory;
27324 loop_counter = 0;
27325 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
27326 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27327 loop_counter++;
27328 if (loop_counter > MAX_LOOP) {
27329 memory = rtican_type1_error_level;
27330 rtican_type1_error_level = 1;
27331 rtican_type1_tq_err_sig(0, 0);
27332 rtican_type1_error_level = memory;
27333 break;
27334 }
27335 }
27336
27337 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
27338 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27339 loop_counter++;
27340 if (loop_counter > MAX_LOOP) {
27341 memory = rtican_type1_error_level;
27342 rtican_type1_error_level = 1;
27343 rtican_type1_tq_err_sig(0, 0);
27344 rtican_type1_error_level = memory;
27345 break;
27346 }
27347 }
27348 }
27349 }
27350
27351 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = L4_MABX_B.Selector_b;
27352
27353 /* End of Outputs for SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' */
27354
27355 /* RelationalOperator: '<S38>/Operator' */
27356 L4_MABX_B.Operator_bsv = (L4_MABX_B.Switch1_iy == L4_MABX_ConstB.Width_g);
27357 }
27358
27359 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27360 /* user code (Output function Trailer for TID5) */
27361
27362 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27363 /* EventChannel: 0 */
27364 if (tid == 0) {
27365 DSXCP_service(0);
27366 }
27367
27368 /* If subsystem generates rate grouping Output functions,
27369 * when tid is used in Output function for one rate,
27370 * all Output functions include tid as a local variable.
27371 * As result, some Output functions may have unused tid.
27372 */
27373 UNUSED_PARAMETER(tid);
27374}
27375
27376/* Model update function for TID5 */
27377void L4_MABX_update5(void) /* Sample time: [0.5s, 0.0s] */
27378{
27379 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
27380 * EnablePort: '<S11>/Enable'
27381 */
27382 if (L4_MABX_B.Operator_eu) {
27383 /* Update for UnitDelay: '<S30>/Unit_Delay' */
27384 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_B.Operator_f5;
27385
27386 /* Update for UnitDelay: '<S31>/Unit Delay' */
27387 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_B.Switch1_o;
27388 }
27389
27390 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
27391
27392 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
27393 * EnablePort: '<S15>/Enable'
27394 */
27395 if (L4_MABX_B.Operator_msz) {
27396 /* Update for UnitDelay: '<S54>/Unit_Delay' */
27397 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_B.Operator_ho;
27398
27399 /* Update for UnitDelay: '<S55>/Unit Delay' */
27400 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_B.Switch1_kd;
27401 }
27402
27403 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
27404
27405 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
27406 * EnablePort: '<S16>/Enable'
27407 */
27408 if (L4_MABX_B.Operator_fv) {
27409 /* Update for UnitDelay: '<S60>/Unit_Delay' */
27410 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_B.Operator_bg;
27411
27412 /* Update for UnitDelay: '<S61>/Unit Delay' */
27413 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_B.Switch1_h;
27414 }
27415
27416 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
27417
27418 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
27419 * EnablePort: '<S13>/Enable'
27420 */
27421 if (L4_MABX_B.Operator_bsh) {
27422 /* Update for UnitDelay: '<S42>/Unit_Delay' */
27423 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_B.Operator_dh;
27424
27425 /* Update for UnitDelay: '<S43>/Unit Delay' */
27426 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_B.Switch1_k4;
27427 }
27428
27429 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
27430
27431 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27432 * EnablePort: '<S14>/Enable'
27433 */
27434 if (L4_MABX_B.Operator_bw) {
27435 /* Update for UnitDelay: '<S48>/Unit_Delay' */
27436 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_B.Operator_ou;
27437
27438 /* Update for UnitDelay: '<S49>/Unit Delay' */
27439 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_B.Switch1_ex;
27440 }
27441
27442 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27443
27444 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27445 * EnablePort: '<S12>/Enable'
27446 */
27447 if (L4_MABX_B.Operator_eb) {
27448 /* Update for UnitDelay: '<S36>/Unit_Delay' */
27449 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_B.Operator_bsv;
27450
27451 /* Update for UnitDelay: '<S37>/Unit Delay' */
27452 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_B.Switch1_iy;
27453 }
27454
27455 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27456}
27457
27458/* Model output function for TID6 */
27459void L4_MABX_output6(void) /* Sample time: [1.0s, 0.0s] */
27460{
27461 int_T tid = 6;
27462
27463 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_1000ms' */
27464
27465 /* DataTypeConversion: '<S836>/Data Type Conversion' incorporates:
27466 * Constant: '<S827>/Constant2'
27467 */
27468 L4_MABX_B.DataTypeConversion_lq = (uint8_T)L4_MABX_P.Constant2_Value_fq;
27469
27470 /* S-Function (sfix_bitop): '<S841>/Operator' */
27471 L4_MABX_B.Operator_ic = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
27472 L4_MABX_P.Operator_BitMask);
27473
27474 /* DataTypeConversion: '<S841>/DataType' */
27475 L4_MABX_B.DataType_ga = L4_MABX_B.Operator_ic;
27476
27477 /* ArithShift: '<S836>/Shift_Arithmetic 2' */
27478 L4_MABX_B.Shift_Arithmetic2_g3 = ldexp(L4_MABX_B.DataType_ga, (-3));
27479
27480 /* DataTypeConversion: '<S836>/Data Type Conversion5' */
27481 L4_MABX_B.DataTypeConversion5_jv3 = (L4_MABX_B.Shift_Arithmetic2_g3 != 0.0);
27482
27483 /* Outputs for Enabled SubSystem: '<S844>/AIR1' incorporates:
27484 * EnablePort: '<S845>/Enable'
27485 */
27486 if (L4_MABX_B.DataTypeConversion5_jv3) {
27487 /* S-Function (rti_commonblock): '<S845>/S-Function1' */
27488 /* This comment workarounds a code generation problem */
27489
27490 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
27491 {
27492 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27493
27494 Float32 delayTime = 0.0;
27495
27496 /* ... Read status and timestamp info (previous message) */
27497 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]);
27498
27499 /* Convert timestamp */
27500 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed) {
27501 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp =
27502 rtk_dsts_time_to_simtime_convert
27503 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp);
27504 }
27505
27506 /* Messages with timestamp zero have been received in pause/stop state
27507 and must not be handled.
27508 */
27509 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp > 0.0) {
27510 L4_MABX_B.SFunction1_o1_hkw = (real_T)
27511 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed;
27512 L4_MABX_B.SFunction1_o2_bn = (real_T)
27513 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp;
27514 L4_MABX_B.SFunction1_o3_b0 = (real_T)
27515 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->deltatime;
27516 L4_MABX_B.SFunction1_o4_cv = (real_T)
27517 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->delaytime;
27518 }
27519
27520 /* ... Encode Simulink signals of TX and RM blocks*/
27521 {
27522 rtican_Signal_t CAN_Sgn;
27523
27524 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
27525 /* Add or substract 0.5 in order to round to nearest integer */
27526 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PneumaticSupplyPress - ( 0 )
27527 ) / 8 + 0.5);
27528 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27529 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27530
27531 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
27532 /* Add or substract 0.5 in order to round to nearest integer */
27533 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingAnd_orTrailerAirPress
27534 - ( 0 ) ) / 8 + 0.5);
27535 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27536 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27537
27538 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
27539 /* Add or substract 0.5 in order to round to nearest integer */
27540 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit1AirPress
27541 - ( 0 ) ) / 8 + 0.5);
27542 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27543 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27544
27545 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
27546 /* Add or substract 0.5 in order to round to nearest integer */
27547 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit2AirPress
27548 - ( 0 ) ) / 8 + 0.5);
27549 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27550 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27551
27552 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
27553 /* Add or substract 0.5 in order to round to nearest integer */
27554 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AuxEquipmentSupplyPress -
27555 ( 0 ) ) / 8 + 0.5);
27556 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27557 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
27558
27559 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
27560 /* Add or substract 0.5 in order to round to nearest integer */
27561 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirSuspensionSupplyPress - (
27562 0 ) ) / 8 + 0.5);
27563 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27564 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27565
27566 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
27567 /* Add or substract 0.5 in order to round to nearest integer */
27568 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirCompressorStatus ) + 0.5);
27569 CAN_Sgn.UnsignedSgn &= 0x00000003;
27570 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27571
27572 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
27573 /* Add or substract 0.5 in order to round to nearest integer */
27574 CAN_Sgn.UnsignedSgn = (UInt32)
27575 (( L4_MABX_B.PowertrainCircuitAirSupplyPress - ( 0 ) ) / 8 + 0.5);
27576 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27577 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
27578 }
27579
27580 /* mask unused bits with '1' */
27581 CAN_Msg[6] |= 0xFC;
27582
27583 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27584 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31], 8,
27585 &(CAN_Msg[0]), delayTime);
27586 }
27587 }
27588
27589 /* End of Outputs for SubSystem: '<S844>/AIR1' */
27590
27591 /* S-Function (sfix_bitop): '<S838>/Operator' */
27592 L4_MABX_B.Operator_g5 = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
27593 L4_MABX_P.Operator_BitMask_i);
27594
27595 /* DataTypeConversion: '<S838>/DataType' */
27596 L4_MABX_B.DataType_d4 = L4_MABX_B.Operator_g5;
27597
27598 /* S-Function (sfix_bitop): '<S839>/Operator' */
27599 L4_MABX_B.Operator_nl = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
27600 L4_MABX_P.Operator_BitMask_b);
27601
27602 /* DataTypeConversion: '<S839>/DataType' */
27603 L4_MABX_B.DataType_gj = L4_MABX_B.Operator_nl;
27604
27605 /* S-Function (sfix_bitop): '<S840>/Operator' */
27606 L4_MABX_B.Operator_pp = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
27607 L4_MABX_P.Operator_BitMask_g);
27608
27609 /* DataTypeConversion: '<S840>/DataType' */
27610 L4_MABX_B.DataType_b = L4_MABX_B.Operator_pp;
27611
27612 /* S-Function (sfix_bitop): '<S842>/Operator' */
27613 L4_MABX_B.Operator_hl = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
27614 L4_MABX_P.Operator_BitMask_k);
27615
27616 /* DataTypeConversion: '<S842>/DataType' */
27617 L4_MABX_B.DataType_k = L4_MABX_B.Operator_hl;
27618
27619 /* S-Function (sfix_bitop): '<S843>/Operator' */
27620 L4_MABX_B.Operator_ku = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
27621 L4_MABX_P.Operator_BitMask_m);
27622
27623 /* DataTypeConversion: '<S843>/DataType' */
27624 L4_MABX_B.DataType_jn = L4_MABX_B.Operator_ku;
27625
27626 /* DataTypeConversion: '<S836>/Data Type Conversion2' */
27627 L4_MABX_B.DataTypeConversion2_gg = (L4_MABX_B.DataType_d4 != 0);
27628
27629 /* ArithShift: '<S836>/Shift_Arithmetic ' */
27630 L4_MABX_B.Shift_Arithmetic_pf = ldexp(L4_MABX_B.DataType_gj, (-1));
27631
27632 /* DataTypeConversion: '<S836>/Data Type Conversion3' */
27633 L4_MABX_B.DataTypeConversion3_c1 = (L4_MABX_B.Shift_Arithmetic_pf != 0.0);
27634
27635 /* ArithShift: '<S836>/Shift_Arithmetic 1' */
27636 L4_MABX_B.Shift_Arithmetic1_c = ldexp(L4_MABX_B.DataType_b, (-2));
27637
27638 /* DataTypeConversion: '<S836>/Data Type Conversion4' */
27639 L4_MABX_B.DataTypeConversion4_lf = (L4_MABX_B.Shift_Arithmetic1_c != 0.0);
27640
27641 /* ArithShift: '<S836>/Shift_Arithmetic 3' */
27642 L4_MABX_B.Shift_Arithmetic3_e2 = ldexp(L4_MABX_B.DataType_k, (-4));
27643
27644 /* DataTypeConversion: '<S836>/Data Type Conversion6' */
27645 L4_MABX_B.DataTypeConversion6_cw = (L4_MABX_B.Shift_Arithmetic3_e2 != 0.0);
27646
27647 /* ArithShift: '<S836>/Shift_Arithmetic 4' */
27648 L4_MABX_B.Shift_Arithmetic4_o = ldexp(L4_MABX_B.DataType_jn, (-5));
27649
27650 /* DataTypeConversion: '<S836>/Data Type Conversion7' */
27651 L4_MABX_B.DataTypeConversion7_fs = (L4_MABX_B.Shift_Arithmetic4_o != 0.0);
27652
27653 /* DataTypeConversion: '<S837>/Data Type Conversion' incorporates:
27654 * Constant: '<S827>/Constant1'
27655 */
27656 L4_MABX_B.DataTypeConversion_b0 = (uint8_T)L4_MABX_P.Constant1_Value_dm;
27657
27658 /* S-Function (sfix_bitop): '<S849>/Operator' */
27659 L4_MABX_B.Operator_ij = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
27660 L4_MABX_P.Operator_BitMask_e);
27661
27662 /* DataTypeConversion: '<S849>/DataType' */
27663 L4_MABX_B.DataType_n2 = L4_MABX_B.Operator_ij;
27664
27665 /* ArithShift: '<S837>/Shift_Arithmetic 2' */
27666 L4_MABX_B.Shift_Arithmetic2_o = ldexp(L4_MABX_B.DataType_n2, (-3));
27667
27668 /* DataTypeConversion: '<S837>/Data Type Conversion5' */
27669 L4_MABX_B.DataTypeConversion5_da = (L4_MABX_B.Shift_Arithmetic2_o != 0.0);
27670
27671 /* Outputs for Enabled SubSystem: '<S852>/AMB' incorporates:
27672 * EnablePort: '<S853>/Enable'
27673 */
27674 if (L4_MABX_B.DataTypeConversion5_da) {
27675 /* S-Function (rti_commonblock): '<S853>/S-Function1' */
27676 /* This comment workarounds a code generation problem */
27677
27678 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
27679 {
27680 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27681
27682 Float32 delayTime = 0.0;
27683
27684 /* ... Read status and timestamp info (previous message) */
27685 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]);
27686
27687 /* Convert timestamp */
27688 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed) {
27689 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp =
27690 rtk_dsts_time_to_simtime_convert
27691 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp);
27692 }
27693
27694 /* Messages with timestamp zero have been received in pause/stop state
27695 and must not be handled.
27696 */
27697 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp > 0.0) {
27698 L4_MABX_B.SFunction1_o1_ei = (real_T)
27699 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed;
27700 L4_MABX_B.SFunction1_o2_a4 = (real_T)
27701 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp;
27702 L4_MABX_B.SFunction1_o3_g = (real_T)
27703 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->deltatime;
27704 L4_MABX_B.SFunction1_o4_bz = (real_T)
27705 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->delaytime;
27706 }
27707
27708 /* ... Encode Simulink signals of TX and RM blocks*/
27709 {
27710 rtican_Signal_t CAN_Sgn;
27711
27712 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
27713 /* Add or substract 0.5 in order to round to nearest integer */
27714 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BarometricPress_h - ( 0 ) ) /
27715 0.5 + 0.5);
27716 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27717 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27718
27719 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
27720 /* Add or substract 0.5 in order to round to nearest integer */
27721 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CabInteriorTemp - ( -273 ) )
27722 / 0.03125 + 0.5);
27723 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27724 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27725 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
27726
27727 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
27728 /* Add or substract 0.5 in order to round to nearest integer */
27729 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AmbientAirTemp_i - ( -273 ) )
27730 / 0.03125 + 0.5);
27731 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27732 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27733 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
27734
27735 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
27736 /* Add or substract 0.5 in order to round to nearest integer */
27737 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.EngAirIntakeTemp - ( -40 ) +
27738 0.5);
27739 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27740 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27741
27742 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
27743 /* Add or substract 0.5 in order to round to nearest integer */
27744 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RoadSurfaceTemp - ( -273 ) )
27745 / 0.03125 + 0.5);
27746 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27747 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27748 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte1;
27749 }
27750
27751 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27752 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500], 8,
27753 &(CAN_Msg[0]), delayTime);
27754 }
27755 }
27756
27757 /* End of Outputs for SubSystem: '<S852>/AMB' */
27758
27759 /* S-Function (sfix_bitop): '<S846>/Operator' */
27760 L4_MABX_B.Operator_ek = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
27761 L4_MABX_P.Operator_BitMask_m4);
27762
27763 /* DataTypeConversion: '<S846>/DataType' */
27764 L4_MABX_B.DataType_mh = L4_MABX_B.Operator_ek;
27765
27766 /* S-Function (sfix_bitop): '<S847>/Operator' */
27767 L4_MABX_B.Operator_jy = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
27768 L4_MABX_P.Operator_BitMask_o);
27769
27770 /* DataTypeConversion: '<S847>/DataType' */
27771 L4_MABX_B.DataType_k2 = L4_MABX_B.Operator_jy;
27772
27773 /* S-Function (sfix_bitop): '<S848>/Operator' */
27774 L4_MABX_B.Operator_olt = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
27775 L4_MABX_P.Operator_BitMask_j);
27776
27777 /* DataTypeConversion: '<S848>/DataType' */
27778 L4_MABX_B.DataType_mi = L4_MABX_B.Operator_olt;
27779
27780 /* S-Function (sfix_bitop): '<S850>/Operator' */
27781 L4_MABX_B.Operator_om = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
27782 L4_MABX_P.Operator_BitMask_kw);
27783
27784 /* DataTypeConversion: '<S850>/DataType' */
27785 L4_MABX_B.DataType_iu = L4_MABX_B.Operator_om;
27786
27787 /* S-Function (sfix_bitop): '<S851>/Operator' */
27788 L4_MABX_B.Operator_hjq = (uint8_T)(L4_MABX_B.DataTypeConversion_b0 &
27789 L4_MABX_P.Operator_BitMask_l);
27790
27791 /* DataTypeConversion: '<S851>/DataType' */
27792 L4_MABX_B.DataType_kc = L4_MABX_B.Operator_hjq;
27793
27794 /* DataTypeConversion: '<S837>/Data Type Conversion2' */
27795 L4_MABX_B.DataTypeConversion2_igb = (L4_MABX_B.DataType_mh != 0);
27796
27797 /* ArithShift: '<S837>/Shift_Arithmetic ' */
27798 L4_MABX_B.Shift_Arithmetic_k = ldexp(L4_MABX_B.DataType_k2, (-1));
27799
27800 /* DataTypeConversion: '<S837>/Data Type Conversion3' */
27801 L4_MABX_B.DataTypeConversion3_aq = (L4_MABX_B.Shift_Arithmetic_k != 0.0);
27802
27803 /* ArithShift: '<S837>/Shift_Arithmetic 1' */
27804 L4_MABX_B.Shift_Arithmetic1_is = ldexp(L4_MABX_B.DataType_mi, (-2));
27805
27806 /* DataTypeConversion: '<S837>/Data Type Conversion4' */
27807 L4_MABX_B.DataTypeConversion4_ff = (L4_MABX_B.Shift_Arithmetic1_is != 0.0);
27808
27809 /* ArithShift: '<S837>/Shift_Arithmetic 3' */
27810 L4_MABX_B.Shift_Arithmetic3_k = ldexp(L4_MABX_B.DataType_iu, (-4));
27811
27812 /* DataTypeConversion: '<S837>/Data Type Conversion6' */
27813 L4_MABX_B.DataTypeConversion6_pn = (L4_MABX_B.Shift_Arithmetic3_k != 0.0);
27814
27815 /* ArithShift: '<S837>/Shift_Arithmetic 4' */
27816 L4_MABX_B.Shift_Arithmetic4_or = ldexp(L4_MABX_B.DataType_kc, (-5));
27817
27818 /* DataTypeConversion: '<S837>/Data Type Conversion7' */
27819 L4_MABX_B.DataTypeConversion7_mo = (L4_MABX_B.Shift_Arithmetic4_or != 0.0);
27820
27821 /* End of Outputs for SubSystem: '<S824>/CAN_TX_1000ms' */
27822 /* user code (Output function Trailer for TID6) */
27823
27824 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27825 /* EventChannel: 0 */
27826 if (tid == 0) {
27827 DSXCP_service(0);
27828 }
27829
27830 /* If subsystem generates rate grouping Output functions,
27831 * when tid is used in Output function for one rate,
27832 * all Output functions include tid as a local variable.
27833 * As result, some Output functions may have unused tid.
27834 */
27835 UNUSED_PARAMETER(tid);
27836}
27837
27838/* Model update function for TID6 */
27839void L4_MABX_update6(void) /* Sample time: [1.0s, 0.0s] */
27840{
27841 /* (no update code required) */
27842}
27843
27844/* Model output function for TID7 */
27845void L4_MABX_output7(void) /* Sample time: [5.0s, 0.0s] */
27846{
27847 int_T tid = 7;
27848 int32_T i;
27849 uint16_T tmp;
27850 uint32_T q0;
27851 uint32_T qY;
27852
27853 /* Outputs for Atomic SubSystem: '<S824>/CAN_TX_5000ms' */
27854
27855 /* DataTypeConversion: '<S1015>/Data Type Conversion6' incorporates:
27856 * Constant: '<S1015>/Enable_TX_RequestDiagMsgFromREAX'
27857 */
27858 L4_MABX_B.DataTypeConversion6_bn = L4_MABX_P.Enable_TX_RequestDiagMsgFromREA;
27859
27860 /* Logic: '<S1019>/Operator' */
27861 L4_MABX_B.Operator_bd = (L4_MABX_B.DataTypeConversion6_bn &&
27862 L4_MABX_B.TmpRTBAtOperatorInport2);
27863
27864 /* DataTypeConversion: '<S1019>/DataType' */
27865 L4_MABX_B.DataType_ew = L4_MABX_B.Operator_bd;
27866
27867 /* Reshape: '<S1024>/Reshape' incorporates:
27868 * Constant: '<S1024>/Constant'
27869 */
27870 for (i = 0; i < 8; i++) {
27871 L4_MABX_B.Reshape[i] = L4_MABX_P.Repeating_Sequence_Stair_OutVal[i];
27872 }
27873
27874 /* End of Reshape: '<S1024>/Reshape' */
27875
27876 /* UnitDelay: '<S1024>/Unit_Delay' */
27877 L4_MABX_B.Unit_Delay_ki = L4_MABX_DW.Unit_Delay_DSTATE_jp;
27878
27879 /* UnitDelay: '<S1025>/Unit Delay' */
27880 L4_MABX_B.UnitDelay_k = L4_MABX_DW.UnitDelay_DSTATE_i;
27881
27882 /* Switch: '<S1028>/Switch1' incorporates:
27883 * Constant: '<S1025>/E'
27884 * Constant: '<S1025>/IV'
27885 * Switch: '<S1027>/Switch1'
27886 */
27887 if (L4_MABX_B.Unit_Delay_ki) {
27888 L4_MABX_B.Switch1_i = L4_MABX_P.IV_Value_bj;
27889 } else {
27890 if (L4_MABX_P.E_Value_e) {
27891 /* Sum: '<S1025>/Subtract' incorporates:
27892 * Constant: '<S1025>/Constant'
27893 * Switch: '<S1027>/Switch1'
27894 */
27895 q0 = L4_MABX_P.Constant_Value_c0;
27896 qY = q0 + L4_MABX_B.UnitDelay_k;
27897 if (qY < q0) {
27898 qY = MAX_uint32_T;
27899 }
27900
27901 L4_MABX_B.Subtract_p = qY;
27902
27903 /* End of Sum: '<S1025>/Subtract' */
27904
27905 /* Switch: '<S1027>/Switch1' */
27906 L4_MABX_B.Switch1_fw = L4_MABX_B.Subtract_p;
27907 } else {
27908 /* Switch: '<S1027>/Switch1' */
27909 L4_MABX_B.Switch1_fw = L4_MABX_B.UnitDelay_k;
27910 }
27911
27912 L4_MABX_B.Switch1_i = L4_MABX_B.Switch1_fw;
27913 }
27914
27915 /* End of Switch: '<S1028>/Switch1' */
27916
27917 /* Selector: '<S1024>/Selector' */
27918 L4_MABX_B.Selector = L4_MABX_B.Reshape[(int32_T)L4_MABX_B.Switch1_i - 1];
27919
27920 /* DataTypeConversion: '<S1016>/Data Type Conversion' */
27921 L4_MABX_B.DataTypeConversion_gu = L4_MABX_B.Selector;
27922
27923 /* S-Function (sfix_bitop): '<S1021>/Operator' */
27924 L4_MABX_B.Operator = L4_MABX_B.DataTypeConversion_gu &
27925 L4_MABX_P.Operator_BitMask_au;
27926
27927 /* DataTypeConversion: '<S1021>/DataType' */
27928 q0 = L4_MABX_B.Operator;
27929 if (q0 > 255U) {
27930 q0 = 255U;
27931 }
27932
27933 L4_MABX_B.DataType_er = (uint8_T)q0;
27934
27935 /* End of DataTypeConversion: '<S1021>/DataType' */
27936
27937 /* DataTypeConversion: '<S1016>/Data Type Conversion3' */
27938 L4_MABX_B.DataTypeConversion3_c = L4_MABX_B.DataType_er;
27939
27940 /* DataTypeConversion: '<S1018>/Data Type Conversion' */
27941 L4_MABX_B.DataTypeConversion_ew = L4_MABX_B.DataTypeConversion3_c;
27942
27943 /* S-Function (sfix_bitop): '<S1022>/Operator' */
27944 L4_MABX_B.Operator_f = L4_MABX_B.DataTypeConversion_gu &
27945 L4_MABX_P.Operator_BitMask_as;
27946
27947 /* DataTypeConversion: '<S1022>/DataType' */
27948 q0 = L4_MABX_B.Operator_f;
27949 if (q0 > 65535U) {
27950 q0 = 65535U;
27951 }
27952
27953 L4_MABX_B.DataType_jv = (uint16_T)q0;
27954
27955 /* End of DataTypeConversion: '<S1022>/DataType' */
27956
27957 /* ArithShift: '<S1016>/Shift_Arithmetic ' */
27958 L4_MABX_B.Shift_Arithmetic_e = (uint16_T)((uint32_T)L4_MABX_B.DataType_jv >> 8);
27959
27960 /* DataTypeConversion: '<S1016>/Data Type Conversion1' */
27961 tmp = L4_MABX_B.Shift_Arithmetic_e;
27962 if (tmp > 255) {
27963 tmp = 255U;
27964 }
27965
27966 L4_MABX_B.DataTypeConversion1_p3 = (uint8_T)tmp;
27967
27968 /* End of DataTypeConversion: '<S1016>/Data Type Conversion1' */
27969
27970 /* DataTypeConversion: '<S1018>/Data Type Conversion1' */
27971 L4_MABX_B.DataTypeConversion1_n = L4_MABX_B.DataTypeConversion1_p3;
27972
27973 /* S-Function (sfix_bitop): '<S1023>/Operator' */
27974 L4_MABX_B.Operator_e = L4_MABX_B.DataTypeConversion_gu &
27975 L4_MABX_P.Operator_BitMask_fc;
27976
27977 /* DataTypeConversion: '<S1023>/DataType' */
27978 L4_MABX_B.DataType_og = L4_MABX_B.Operator_e;
27979
27980 /* ArithShift: '<S1016>/Shift_Arithmetic 1' */
27981 L4_MABX_B.Shift_Arithmetic1_o = L4_MABX_B.DataType_og >> 16;
27982
27983 /* DataTypeConversion: '<S1016>/Data Type Conversion2' */
27984 q0 = L4_MABX_B.Shift_Arithmetic1_o;
27985 if (q0 > 255U) {
27986 q0 = 255U;
27987 }
27988
27989 L4_MABX_B.DataTypeConversion2_i4 = (uint8_T)q0;
27990
27991 /* End of DataTypeConversion: '<S1016>/Data Type Conversion2' */
27992
27993 /* DataTypeConversion: '<S1018>/Data Type Conversion2' */
27994 L4_MABX_B.DataTypeConversion2_d = L4_MABX_B.DataTypeConversion2_i4;
27995
27996 /* Outputs for Enabled SubSystem: '<S1018>/RQST_13_E4' incorporates:
27997 * EnablePort: '<S1020>/Enable'
27998 */
27999 if (L4_MABX_B.DataType_ew) {
28000 /* S-Function (rti_commonblock): '<S1020>/S-Function1' */
28001 /* This comment workarounds a code generation problem */
28002
28003 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
28004 {
28005 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
28006
28007 Float32 delayTime = 0.0;
28008
28009 /* ... Read status and timestamp info (previous message) */
28010 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]);
28011
28012 /* Convert timestamp */
28013 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed) {
28014 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp =
28015 rtk_dsts_time_to_simtime_convert
28016 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp);
28017 }
28018
28019 /* Messages with timestamp zero have been received in pause/stop state
28020 and must not be handled.
28021 */
28022 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp > 0.0) {
28023 L4_MABX_B.SFunction1_o1_f = (real_T)
28024 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed;
28025 L4_MABX_B.SFunction1_o2_a = (real_T)
28026 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp;
28027 L4_MABX_B.SFunction1_o3_k = (real_T)
28028 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->deltatime;
28029 L4_MABX_B.SFunction1_o4_k = (real_T)
28030 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->delaytime;
28031 }
28032
28033 /* ... Encode Simulink signals of TX and RM blocks*/
28034 {
28035 rtican_Signal_t CAN_Sgn;
28036
28037 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
28038 /* Add or substract 0.5 in order to round to nearest integer */
28039 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_ew ) +
28040 0.5);
28041 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28042 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
28043
28044 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
28045 /* Add or substract 0.5 in order to round to nearest integer */
28046 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n ) +
28047 0.5);
28048 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28049 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
28050
28051 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
28052 /* Add or substract 0.5 in order to round to nearest integer */
28053 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_d ) +
28054 0.5);
28055 CAN_Sgn.UnsignedSgn &= 0x000000FF;
28056 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
28057 }
28058
28059 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
28060 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4], 8,
28061 &(CAN_Msg[0]), delayTime);
28062 }
28063 }
28064
28065 /* End of Outputs for SubSystem: '<S1018>/RQST_13_E4' */
28066
28067 /* RelationalOperator: '<S1026>/Operator' */
28068 L4_MABX_B.Operator_hz = (L4_MABX_B.Switch1_i == L4_MABX_B.Width);
28069
28070 /* End of Outputs for SubSystem: '<S824>/CAN_TX_5000ms' */
28071 /* user code (Output function Trailer for TID7) */
28072
28073 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
28074 /* EventChannel: 0 */
28075 if (tid == 0) {
28076 DSXCP_service(0);
28077 }
28078
28079 /* If subsystem generates rate grouping Output functions,
28080 * when tid is used in Output function for one rate,
28081 * all Output functions include tid as a local variable.
28082 * As result, some Output functions may have unused tid.
28083 */
28084 UNUSED_PARAMETER(tid);
28085}
28086
28087/* Model update function for TID7 */
28088void L4_MABX_update7(void) /* Sample time: [5.0s, 0.0s] */
28089{
28090 /* Update for Atomic SubSystem: '<S824>/CAN_TX_5000ms' */
28091
28092 /* Update for UnitDelay: '<S1024>/Unit_Delay' */
28093 L4_MABX_DW.Unit_Delay_DSTATE_jp = L4_MABX_B.Operator_hz;
28094
28095 /* Update for UnitDelay: '<S1025>/Unit Delay' */
28096 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_B.Switch1_i;
28097
28098 /* End of Update for SubSystem: '<S824>/CAN_TX_5000ms' */
28099}
28100
28101/* Model output function for TID8 */
28102void L4_MABX_output8(void) /* Sample time: [10.0s, 0.0s] */
28103{
28104 int_T tid = 8;
28105
28106 /* user code (Output function Trailer for TID8) */
28107
28108 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
28109 /* EventChannel: 0 */
28110 if (tid == 0) {
28111 DSXCP_service(0);
28112 }
28113
28114 /* If subsystem generates rate grouping Output functions,
28115 * when tid is used in Output function for one rate,
28116 * all Output functions include tid as a local variable.
28117 * As result, some Output functions may have unused tid.
28118 */
28119 UNUSED_PARAMETER(tid);
28120}
28121
28122/* Model update function for TID8 */
28123void L4_MABX_update8(void) /* Sample time: [10.0s, 0.0s] */
28124{
28125 /* (no update code required) */
28126}
28127
28128/* Model output wrapper function for compatibility with a static main program */
28129void L4_MABX_output(int_T tid)
28130{
28131 switch (tid) {
28132 case 0 :
28133 L4_MABX_output0();
28134 break;
28135
28136 case 1 :
28137 L4_MABX_output1();
28138 break;
28139
28140 case 2 :
28141 L4_MABX_output2();
28142 break;
28143
28144 case 3 :
28145 L4_MABX_output3();
28146 break;
28147
28148 case 4 :
28149 L4_MABX_output4();
28150 break;
28151
28152 case 5 :
28153 L4_MABX_output5();
28154 break;
28155
28156 case 6 :
28157 L4_MABX_output6();
28158 break;
28159
28160 case 7 :
28161 L4_MABX_output7();
28162 break;
28163
28164 case 8 :
28165 L4_MABX_output8();
28166 break;
28167
28168 default :
28169 break;
28170 }
28171}
28172
28173/* Model update wrapper function for compatibility with a static main program */
28174void L4_MABX_update(int_T tid)
28175{
28176 switch (tid) {
28177 case 0 :
28178 L4_MABX_update0();
28179 break;
28180
28181 case 1 :
28182 L4_MABX_update1();
28183 break;
28184
28185 case 2 :
28186 L4_MABX_update2();
28187 break;
28188
28189 case 3 :
28190 L4_MABX_update3();
28191 break;
28192
28193 case 4 :
28194 L4_MABX_update4();
28195 break;
28196
28197 case 5 :
28198 L4_MABX_update5();
28199 break;
28200
28201 case 6 :
28202 L4_MABX_update6();
28203 break;
28204
28205 case 7 :
28206 L4_MABX_update7();
28207 break;
28208
28209 case 8 :
28210 L4_MABX_update8();
28211 break;
28212
28213 default :
28214 break;
28215 }
28216}
28217
28218/* Model initialize function */
28219void L4_MABX_initialize(void)
28220{
28221 /* Registration code */
28222
28223 /* initialize non-finites */
28224 rt_InitInfAndNaN(sizeof(real_T));
28225
28226 /* non-finite (run-time) assignments */
28227 L4_MABX_P.Saturation_UpperSat = rtInf;
28228 L4_MABX_P.Saturation_UpperSat_o = rtInf;
28229 L4_MABX_P.Saturation_UpperSat_f = rtInf;
28230 L4_MABX_P.Saturation1_UpperSat_j = rtInf;
28231 L4_MABX_P.Saturation_UpperSat_l = rtInf;
28232 L4_MABX_P.Saturation_UpperSat_o1 = rtInf;
28233 L4_MABX_P.Saturation_UpperSat_d = rtInf;
28234 L4_MABX_P.Saturation_UpperSat_ok = rtInf;
28235 L4_MABX_P.Saturation_UpperSat_k = rtInf;
28236 L4_MABX_P.Saturation_UpperSat_df = rtInf;
28237 L4_MABX_P.Calculate_D_term_h.Saturation_UpperSat = rtInf;
28238 L4_MABX_P.Calculate_D_term_p.Saturation_UpperSat = rtInf;
28239 L4_MABX_P.Calculate_D_term.Saturation_UpperSat = rtInf;
28240
28241 /* initialize real-time model */
28242 (void) memset((void *)L4_MABX_M, 0,
28243 sizeof(RT_MODEL_L4_MABX_T));
28244 (L4_MABX_M)->Timing.TaskCounters.cLimit[0] = 1;
28245 (L4_MABX_M)->Timing.TaskCounters.cLimit[1] = 2;
28246 (L4_MABX_M)->Timing.TaskCounters.cLimit[2] = 5;
28247 (L4_MABX_M)->Timing.TaskCounters.cLimit[3] = 10;
28248 (L4_MABX_M)->Timing.TaskCounters.cLimit[4] = 25;
28249 (L4_MABX_M)->Timing.TaskCounters.cLimit[5] = 50;
28250 (L4_MABX_M)->Timing.TaskCounters.cLimit[6] = 100;
28251 (L4_MABX_M)->Timing.TaskCounters.cLimit[7] = 500;
28252 (L4_MABX_M)->Timing.TaskCounters.cLimit[8] = 1000;
28253 rtsiSetSolverName(&L4_MABX_M->solverInfo,"FixedStepDiscrete");
28254 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28255
28256 /* Initialize timing info */
28257 {
28258 int_T *mdlTsMap = L4_MABX_M->Timing.sampleTimeTaskIDArray;
28259 int_T i;
28260 for (i = 0; i < 9; i++) {
28261 mdlTsMap[i] = i;
28262 }
28263
28264 L4_MABX_M->Timing.sampleTimeTaskIDPtr = (&mdlTsMap[0]);
28265 L4_MABX_M->Timing.sampleTimes = (&L4_MABX_M->Timing.sampleTimesArray[0]);
28266 L4_MABX_M->Timing.offsetTimes = (&L4_MABX_M->Timing.offsetTimesArray[0]);
28267
28268 /* task periods */
28269 L4_MABX_M->Timing.sampleTimes[0] = (0.01);
28270 L4_MABX_M->Timing.sampleTimes[1] = (0.02);
28271 L4_MABX_M->Timing.sampleTimes[2] = (0.05);
28272 L4_MABX_M->Timing.sampleTimes[3] = (0.1);
28273 L4_MABX_M->Timing.sampleTimes[4] = (0.25);
28274 L4_MABX_M->Timing.sampleTimes[5] = (0.5);
28275 L4_MABX_M->Timing.sampleTimes[6] = (1.0);
28276 L4_MABX_M->Timing.sampleTimes[7] = (5.0);
28277 L4_MABX_M->Timing.sampleTimes[8] = (10.0);
28278
28279 /* task offsets */
28280 L4_MABX_M->Timing.offsetTimes[0] = (0.0);
28281 L4_MABX_M->Timing.offsetTimes[1] = (0.0);
28282 L4_MABX_M->Timing.offsetTimes[2] = (0.0);
28283 L4_MABX_M->Timing.offsetTimes[3] = (0.0);
28284 L4_MABX_M->Timing.offsetTimes[4] = (0.0);
28285 L4_MABX_M->Timing.offsetTimes[5] = (0.0);
28286 L4_MABX_M->Timing.offsetTimes[6] = (0.0);
28287 L4_MABX_M->Timing.offsetTimes[7] = (0.0);
28288 L4_MABX_M->Timing.offsetTimes[8] = (0.0);
28289 }
28290
28291 rtmSetTPtr(L4_MABX_M, &L4_MABX_M->Timing.tArray[0]);
28292
28293 {
28294 int_T *mdlSampleHits = L4_MABX_M->Timing.sampleHitArray;
28295 int_T *mdlPerTaskSampleHits = L4_MABX_M->Timing.perTaskSampleHitsArray;
28296 L4_MABX_M->Timing.perTaskSampleHits = (&mdlPerTaskSampleHits[0]);
28297 mdlSampleHits[0] = 1;
28298 L4_MABX_M->Timing.sampleHits = (&mdlSampleHits[0]);
28299 }
28300
28301 rtmSetTFinal(L4_MABX_M, -1);
28302 L4_MABX_M->Timing.stepSize0 = 0.01;
28303 L4_MABX_M->Timing.stepSize9 = 2.3283064365386963E-10;
28304 L4_MABX_M->Timing.stepSize10 = 2.3283064365386963E-10;
28305 L4_MABX_M->Timing.stepSize11 = 2.3283064365386963E-10;
28306 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28307 L4_MABX_M->Timing.stepSize = (0.01);
28308 rtsiSetFixedStepSize(&L4_MABX_M->solverInfo, 0.01);
28309 rtsiSetSolverMode(&L4_MABX_M->solverInfo, SOLVER_MODE_MULTITASKING);
28310
28311 /* block I/O */
28312 (void) memset(((void *) &L4_MABX_B), 0,
28313 sizeof(B_L4_MABX_T));
28314
28315 {
28316 L4_MABX_B.EPBPCMInhibitStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28317 L4_MABX_B.EPBPCMInhibitStatusFeedback_j = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28318 L4_MABX_B.EPBPCMManualStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28319 L4_MABX_B.EPBPCMManualStatusFeedback_b = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28320 L4_MABX_B.EPBPCMInhibitStatusFeedback_l = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28321 L4_MABX_B.EPBPCMInhibitStatusFeedback_i = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28322 L4_MABX_B.EPBPCMManualStatusFeedback_h = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28323 L4_MABX_B.EPBPCMManualStatusFeedback_p = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28324 L4_MABX_B.XPRErrorState = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28325 L4_MABX_B.XPRErrorState_d = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28326 L4_MABX_B.XPRControlMode = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28327 L4_MABX_B.XPRControlMode_d = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28328 L4_MABX_B.XBRPassThroughActive = ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28329 L4_MABX_B.DataTypeConversion_lr = ENUM_SWITCH_T_OFF;
28330 L4_MABX_B.DataTypeConversion1_lu = ENUM_SWITCH_T_OFF;
28331 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28332 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28333 L4_MABX_B.BrkPedArbBrakeSwitch = ENUM_J1939_SWITCH_T_OFF;
28334 L4_MABX_B.BrkPedArbBrakeSwitch_c = ENUM_J1939_SWITCH_T_OFF;
28335 L4_MABX_B.DataTypeConversion1_cy = ENUM_J1939_SWITCH_T_OFF;
28336 L4_MABX_B.DataTypeConversion3_l5 = ENUM_J1939_SWITCH_T_OFF;
28337 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
28338 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
28339 L4_MABX_B.If_Then_Else_d.XBRPriority = ENUM_XBR_PRIORITY_T_HIGHEST_PRIORITY;
28340 L4_MABX_B.If_Then_Else_d.XBRPassThroughActive =
28341 ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28342 L4_MABX_B.If_Then_Else_d.XBREnduranceBrakeIntegrationMod =
28343 ENUM_XBR_EBI_MODE_T_NO_EBI_ALLOWED;
28344 L4_MABX_B.If_Then_Else_d.XBRControlMode =
28345 ENUM_XBR_CONTROL_MODE_T_OVERRIDE_DISABLED;
28346 }
28347
28348 /* exported global signals */
28349 GLB_Absolute_Timestamp = 0.0;
28350 ReAX_ActualHandwheelPos = 0.0;
28351 EthernetLinkStatus = 0.0;
28352 CurrentAzimuth_rad = 0.0;
28353 TargetAzimuth_rad = 0.0;
28354 TargetVelocity_kph = 0.0;
28355 Curvature = 0.0;
28356 CrosstrackError = 0.0;
28357 CurrentVelocity_kph = 0.0;
28358 GPS_X = 0.0;
28359 GPS_Y = 0.0;
28360 GPS_Time = 0.0;
28361 ReAX_EchoedSteerWheelPos = 0.0;
28362 SteerWheelAngle = 0.0;
28363 YawRate = 0.0;
28364 SPN1810_LongitudinalAcceleration = 0.0;
28365 WheelBasedVehicleSpeed = 0.0;
28366 BrakeSwitch = 0.0;
28367 Lateral_Control_Rate_Limit = 0.0;
28368 Lateral_Control_Output = 0.0;
28369 Lateral_Control_Rate_Limiter_Output = 0.0;
28370 SteerCommandDeg = 0.0;
28371 DesiredSteeringAngle = 0.0;
28372 Lateral_Control_Heading_Error = 0.0;
28373 DIAG_CAN1_Count_Stuff_Errors = 0U;
28374 DIAG_CAN1_Count_Format_Errors = 0U;
28375 DIAG_CAN1_Count_Ack_Errors = 0U;
28376 DIAG_CAN1_Count_Bit0_Errors = 0U;
28377 DIAG_CAN1_Count_Bit1_Errors = 0U;
28378 DIAG_CAN1_Count_CRC_Errors = 0U;
28379 DIAG_CAN1_Count_RX_Lost = 0U;
28380 DIAG_CAN1_Count_RX_OK = 0U;
28381 DIAG_CAN1_Count_TX_OK = 0U;
28382 DIAG_CAN5_Count_Stuff_Errors = 0U;
28383 DIAG_CAN5_Count_Format_Errors = 0U;
28384 DIAG_CAN5_Count_Ack_Errors = 0U;
28385 DIAG_CAN5_Count_Bit0_Errors = 0U;
28386 DIAG_CAN5_Count_Bit1_Errors = 0U;
28387 DIAG_CAN5_Count_CRC_Errors = 0U;
28388 DIAG_CAN5_Count_RX_Lost = 0U;
28389 DIAG_CAN5_Count_RX_OK = 0U;
28390 DIAG_CAN5_Count_TX_OK = 0U;
28391 DIAG_CAN6_Count_Stuff_Errors = 0U;
28392 DIAG_CAN6_Count_Format_Errors = 0U;
28393 DIAG_CAN6_Count_Ack_Errors = 0U;
28394 DIAG_CAN6_Count_Bit0_Errors = 0U;
28395 DIAG_CAN6_Count_Bit1_Errors = 0U;
28396 DIAG_CAN6_Count_CRC_Errors = 0U;
28397 DIAG_CAN6_Count_RX_Lost = 0U;
28398 DIAG_CAN6_Count_RX_OK = 0U;
28399 DIAG_CAN6_Count_TX_OK = 0U;
28400 DIAG_CAN3_Count_Stuff_Errors = 0U;
28401 DIAG_CAN3_Count_Format_Errors = 0U;
28402 DIAG_CAN3_Count_Ack_Errors = 0U;
28403 DIAG_CAN3_Count_Bit0_Errors = 0U;
28404 DIAG_CAN3_Count_Bit1_Errors = 0U;
28405 DIAG_CAN3_Count_CRC_Errors = 0U;
28406 DIAG_CAN3_Count_RX_Lost = 0U;
28407 DIAG_CAN3_Count_RX_OK = 0U;
28408 DIAG_CAN3_Count_TX_OK = 0U;
28409 DIAG_CAN4_Count_Stuff_Errors = 0U;
28410 DIAG_CAN4_Count_Format_Errors = 0U;
28411 DIAG_CAN4_Count_Ack_Errors = 0U;
28412 DIAG_CAN4_Count_Bit0_Errors = 0U;
28413 DIAG_CAN4_Count_Bit1_Errors = 0U;
28414 DIAG_CAN4_Count_CRC_Errors = 0U;
28415 DIAG_CAN4_Count_RX_Lost = 0U;
28416 DIAG_CAN4_Count_RX_OK = 0U;
28417 DIAG_CAN4_Count_TX_OK = 0U;
28418 DIAG_CAN2_Count_Stuff_Errors = 0U;
28419 DIAG_CAN2_Count_Format_Errors = 0U;
28420 DIAG_CAN2_Count_Ack_Errors = 0U;
28421 DIAG_CAN2_Count_Bit0_Errors = 0U;
28422 DIAG_CAN2_Count_Bit1_Errors = 0U;
28423 DIAG_CAN2_Count_CRC_Errors = 0U;
28424 DIAG_CAN2_Count_RX_Lost = 0U;
28425 DIAG_CAN2_Count_RX_OK = 0U;
28426 DIAG_CAN2_Count_TX_OK = 0U;
28427 REAX_Handwheel_Torque = 0.0F;
28428 REAX_Handwheel_Velocity = 0.0F;
28429 REAX_Pull_Compensation = 0.0F;
28430 DIAG_CAN1_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28431 DIAG_CAN5_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28432 DIAG_CAN6_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28433 DIAG_CAN3_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28434 DIAG_CAN4_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28435 DIAG_CAN2_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28436 SupervisorMode = 0U;
28437 REAX_Current_Mode = 0U;
28438 REAX_Req_Mode = 0U;
28439 REAX_Status = 0U;
28440
28441 {
28442 int32_T i;
28443 for (i = 0; i < 100; i++) {
28444 GLB_SWVERSION_CPV_[i] = ((uint8_T)0U);
28445 }
28446 }
28447
28448 MABX_Mode = 0U;
28449 EStop = false;
28450 EnableSw = false;
28451 Heartbeat_Ok = false;
28452 RTMapsOk = false;
28453 EngagePB = false;
28454 AutonomousEnabled = false;
28455 AutonomousOutputEnabled = false;
28456 RateLimiterActive = false;
28457 Pedal_pwm_position = 0.0;
28458
28459 /* states (dwork) */
28460 (void) memset((void *)&L4_MABX_DW, 0,
28461 sizeof(DW_L4_MABX_T));
28462
28463 /* child S-Function registration */
28464 {
28465 RTWSfcnInfo *sfcnInfo = &L4_MABX_M->NonInlinedSFcns.sfcnInfo;
28466 L4_MABX_M->sfcnInfo = (sfcnInfo);
28467 rtssSetErrorStatusPtr(sfcnInfo, (&rtmGetErrorStatus(L4_MABX_M)));
28468 rtssSetNumRootSampTimesPtr(sfcnInfo, &L4_MABX_M->Sizes.numSampTimes);
28469 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[0] = &(rtmGetTPtr(L4_MABX_M)[0]);
28470 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[1] = &(rtmGetTPtr(L4_MABX_M)[1]);
28471 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[2] = &(rtmGetTPtr(L4_MABX_M)[2]);
28472 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[3] = &(rtmGetTPtr(L4_MABX_M)[3]);
28473 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[4] = &(rtmGetTPtr(L4_MABX_M)[4]);
28474 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[5] = &(rtmGetTPtr(L4_MABX_M)[5]);
28475 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[6] = &(rtmGetTPtr(L4_MABX_M)[6]);
28476 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[7] = &(rtmGetTPtr(L4_MABX_M)[7]);
28477 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[8] = &(rtmGetTPtr(L4_MABX_M)[8]);
28478 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[9] = &(rtmGetTPtr(L4_MABX_M)[9]);
28479 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[10] = &(rtmGetTPtr(L4_MABX_M)[10]);
28480 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[11] = &(rtmGetTPtr(L4_MABX_M)[11]);
28481 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[12] = &(rtmGetTPtr(L4_MABX_M)[12]);
28482 rtssSetTPtrPtr(sfcnInfo,L4_MABX_M->NonInlinedSFcns.taskTimePtrs);
28483 rtssSetTStartPtr(sfcnInfo, &rtmGetTStart(L4_MABX_M));
28484 rtssSetTFinalPtr(sfcnInfo, &rtmGetTFinal(L4_MABX_M));
28485 rtssSetTimeOfLastOutputPtr(sfcnInfo, &rtmGetTimeOfLastOutput(L4_MABX_M));
28486 rtssSetStepSizePtr(sfcnInfo, &L4_MABX_M->Timing.stepSize);
28487 rtssSetStopRequestedPtr(sfcnInfo, &rtmGetStopRequested(L4_MABX_M));
28488 rtssSetDerivCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->derivCacheNeedsReset);
28489 rtssSetZCCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->zCCacheNeedsReset);
28490 rtssSetContTimeOutputInconsistentWithStateAtMajorStepPtr(sfcnInfo,
28491 &L4_MABX_M->CTOutputIncnstWithState);
28492 rtssSetSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.sampleHits);
28493 rtssSetPerTaskSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.perTaskSampleHits);
28494 rtssSetSimModePtr(sfcnInfo, &L4_MABX_M->simMode);
28495 rtssSetSolverInfoPtr(sfcnInfo, &L4_MABX_M->solverInfoPtr);
28496 }
28497
28498 L4_MABX_M->Sizes.numSFcns = (5);
28499
28500 /* register each child */
28501 {
28502 (void) memset((void *)&L4_MABX_M->NonInlinedSFcns.childSFunctions[0], 0,
28503 5*sizeof(SimStruct));
28504 L4_MABX_M->childSfunctions = (&L4_MABX_M->
28505 NonInlinedSFcns.childSFunctionPtrs[0]);
28506
28507 {
28508 int_T i;
28509 for (i = 0; i < 5; i++) {
28510 L4_MABX_M->childSfunctions[i] =
28511 (&L4_MABX_M->NonInlinedSFcns.childSFunctions[i]);
28512 }
28513 }
28514
28515 /* Level2 S-Function Block: L4_MABX/<S404>/dsa_tcpip_bkg_sfcn (dsa_tcpip_bkg_sfcn) */
28516 {
28517 SimStruct *rts = L4_MABX_M->childSfunctions[0];
28518
28519 /* timing info */
28520 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnPeriod;
28521 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnOffset;
28522 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnTsMap;
28523 (void) memset((void*)sfcnPeriod, 0,
28524 sizeof(time_T)*1);
28525 (void) memset((void*)sfcnOffset, 0,
28526 sizeof(time_T)*1);
28527 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28528 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28529 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28530
28531 {
28532 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[0]);
28533 }
28534
28535 _ssSetBlkInfo2PortInfo2Ptr(rts,
28536 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[0]);
28537
28538 /* Set up the mdlInfo pointer */
28539 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28540
28541 /* Allocate memory of model methods 2 */
28542 {
28543 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[0]);
28544 }
28545
28546 /* Allocate memory of model methods 3 */
28547 {
28548 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[0]);
28549 }
28550
28551 /* Allocate memory of model methods 4 */
28552 {
28553 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[0]);
28554 }
28555
28556 /* Allocate memory for states auxilliary information */
28557 {
28558 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[0]);
28559 ssSetPeriodicStatesInfo(rts,
28560 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[0]);
28561 }
28562
28563 /* path info */
28564 ssSetModelName(rts, "dsa_tcpip_bkg_sfcn");
28565 ssSetPath(rts,
28566 "L4_MABX/ETHERNET/TCPIP_Setup/Background_Task/dsa_tcpip_bkg_sfcn");
28567 ssSetRTModel(rts,L4_MABX_M);
28568 ssSetParentSS(rts, (NULL));
28569 ssSetRootSS(rts, rts);
28570 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28571
28572 /* work vectors */
28573 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28574
28575 {
28576 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28577 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWork;
28578 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28579 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWorkAux;
28580 ssSetSFcnDWork(rts, dWorkRecord);
28581 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28582 _ssSetNumDWork(rts, 1);
28583
28584 /* IWORK */
28585 ssSetDWorkWidth(rts, 0, 1);
28586 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28587 ssSetDWorkComplexSignal(rts, 0, 0);
28588 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28589 }
28590
28591 /* registration */
28592 dsa_tcpip_bkg_sfcn(rts);
28593 sfcnInitializeSizes(rts);
28594 sfcnInitializeSampleTimes(rts);
28595
28596 /* adjust sample time */
28597 ssSetSampleTime(rts, 0, -1.0);
28598 ssSetOffsetTime(rts, 0, -2.0);
28599 sfcnTsMap[0] = 9;
28600
28601 /* set compiled values of dynamic vector attributes */
28602 ssSetNumNonsampledZCs(rts, 0);
28603
28604 /* Update connectivity flags for each port */
28605 /* Update the BufferDstPort flags for each input port */
28606 }
28607
28608 /* Level2 S-Function Block: L4_MABX/<S405>/dsa_tcpip_irq_l2_sfcn (dsa_tcpip_irq_l2_sfcn) */
28609 {
28610 SimStruct *rts = L4_MABX_M->childSfunctions[1];
28611
28612 /* timing info */
28613 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnPeriod;
28614 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnOffset;
28615 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnTsMap;
28616 (void) memset((void*)sfcnPeriod, 0,
28617 sizeof(time_T)*1);
28618 (void) memset((void*)sfcnOffset, 0,
28619 sizeof(time_T)*1);
28620 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28621 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28622 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28623
28624 {
28625 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[1]);
28626 }
28627
28628 _ssSetBlkInfo2PortInfo2Ptr(rts,
28629 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[1]);
28630
28631 /* Set up the mdlInfo pointer */
28632 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28633
28634 /* Allocate memory of model methods 2 */
28635 {
28636 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[1]);
28637 }
28638
28639 /* Allocate memory of model methods 3 */
28640 {
28641 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[1]);
28642 }
28643
28644 /* Allocate memory of model methods 4 */
28645 {
28646 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[1]);
28647 }
28648
28649 /* Allocate memory for states auxilliary information */
28650 {
28651 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[1]);
28652 ssSetPeriodicStatesInfo(rts,
28653 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[1]);
28654 }
28655
28656 /* path info */
28657 ssSetModelName(rts, "dsa_tcpip_irq_l2_sfcn");
28658 ssSetPath(rts,
28659 "L4_MABX/ETHERNET/TCPIP_Setup/IRQ_Level_2_SW_INT/dsa_tcpip_irq_l2_sfcn");
28660 ssSetRTModel(rts,L4_MABX_M);
28661 ssSetParentSS(rts, (NULL));
28662 ssSetRootSS(rts, rts);
28663 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28664
28665 /* registration */
28666 dsa_tcpip_irq_l2_sfcn(rts);
28667 sfcnInitializeSizes(rts);
28668 sfcnInitializeSampleTimes(rts);
28669
28670 /* adjust sample time */
28671 ssSetSampleTime(rts, 0, -1.0);
28672 ssSetOffsetTime(rts, 0, -3.0);
28673 sfcnTsMap[0] = 10;
28674
28675 /* set compiled values of dynamic vector attributes */
28676 ssSetNumNonsampledZCs(rts, 0);
28677
28678 /* Update connectivity flags for each port */
28679 /* Update the BufferDstPort flags for each input port */
28680 }
28681
28682 /* Level2 S-Function Block: L4_MABX/<S406>/dsa_tcpip_irq_l1_sfcn (dsa_tcpip_irq_l1_sfcn) */
28683 {
28684 SimStruct *rts = L4_MABX_M->childSfunctions[2];
28685
28686 /* timing info */
28687 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnPeriod;
28688 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnOffset;
28689 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnTsMap;
28690 (void) memset((void*)sfcnPeriod, 0,
28691 sizeof(time_T)*1);
28692 (void) memset((void*)sfcnOffset, 0,
28693 sizeof(time_T)*1);
28694 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28695 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28696 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28697
28698 {
28699 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[2]);
28700 }
28701
28702 _ssSetBlkInfo2PortInfo2Ptr(rts,
28703 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[2]);
28704
28705 /* Set up the mdlInfo pointer */
28706 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28707
28708 /* Allocate memory of model methods 2 */
28709 {
28710 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[2]);
28711 }
28712
28713 /* Allocate memory of model methods 3 */
28714 {
28715 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[2]);
28716 }
28717
28718 /* Allocate memory of model methods 4 */
28719 {
28720 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[2]);
28721 }
28722
28723 /* Allocate memory for states auxilliary information */
28724 {
28725 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[2]);
28726 ssSetPeriodicStatesInfo(rts,
28727 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[2]);
28728 }
28729
28730 /* outputs */
28731 {
28732 ssSetPortInfoForOutputs(rts,
28733 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortInfo[0]);
28734 _ssSetNumOutputPorts(rts, 1);
28735 _ssSetPortInfo2ForOutputUnits(rts,
28736 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortUnits[0]);
28737 ssSetOutputPortUnit(rts, 0, 0);
28738 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28739 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortCoSimAttribute[0]);
28740 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28741
28742 /* port 0 */
28743 {
28744 _ssSetOutputPortNumDimensions(rts, 0, 1);
28745 ssSetOutputPortWidth(rts, 0, 1);
28746 ssSetOutputPortSignal(rts, 0, (NULL));
28747 }
28748 }
28749
28750 /* path info */
28751 ssSetModelName(rts, "dsa_tcpip_irq_l1_sfcn");
28752 ssSetPath(rts,
28753 "L4_MABX/ETHERNET/TCPIP_Setup/Interrupt_Task/dsa_tcpip_irq_l1_sfcn");
28754 ssSetRTModel(rts,L4_MABX_M);
28755 ssSetParentSS(rts, (NULL));
28756 ssSetRootSS(rts, rts);
28757 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28758
28759 /* register function-calls */
28760 {
28761 int_T *callSysOutputs = (int_T *)
28762 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysOutputs;
28763 void **callSysArgs1 = (void **)
28764 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs1;
28765 int_T *callSysArgs2 = (int_T *)
28766 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs2;
28767 SysOutputFcn *callSysFcns = (SysOutputFcn *)
28768 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysFcns;
28769
28770 {
28771 int32_T i;
28772 for (i = 0; i < 1; i++) {
28773 callSysOutputs[i] = 0;
28774 callSysFcns[i] = (SysOutputFcn) (NULL);
28775 callSysFcns[1+i] = (SysOutputFcn) (NULL);
28776 callSysFcns[2*1+i] = (SysOutputFcn) (NULL);
28777 callSysFcns[3*1+i] = (SysOutputFcn) (NULL);
28778 }
28779 }
28780
28781 ssSetCallSystemOutputPtr(rts, &callSysOutputs[0]);
28782 ssSetCallSystemOutputArg1List(rts, &callSysArgs1[0]);
28783 ssSetCallSystemOutputArg2List(rts, &callSysArgs2[0]);
28784 ssSetCallSystemOutputFcnList(rts, &callSysFcns[0]);
28785 callSysArgs1[0] = (void *)L4_MABX_M;
28786 callSysArgs2[0] = 0;
28787 callSysFcns[0] = (SysOutputFcn) L4_MABX_TcpInputProcessingFNI;
28788 callSysFcns[1+0] = (SysOutputFcn) L4_TcpInputProcessing_ResetFNI;
28789 callSysFcns[2+0] = (SysOutputFcn) (NULL);
28790 callSysFcns[3+0] = (SysOutputFcn) (NULL);
28791 callSysOutputs[0] = 1;
28792 }
28793
28794 /* registration */
28795 dsa_tcpip_irq_l1_sfcn(rts);
28796 sfcnInitializeSizes(rts);
28797 sfcnInitializeSampleTimes(rts);
28798
28799 /* adjust sample time */
28800 ssSetSampleTime(rts, 0, -1.0);
28801 ssSetOffsetTime(rts, 0, -4.0);
28802 sfcnTsMap[0] = 11;
28803
28804 /* set compiled values of dynamic vector attributes */
28805 ssSetOutputPortWidth(rts, 0, 1);
28806 ssSetNumNonsampledZCs(rts, 0);
28807
28808 /* Update connectivity flags for each port */
28809 _ssSetOutputPortConnected(rts, 0, 1);
28810 _ssSetOutputPortBeingMerged(rts, 0, 0);
28811
28812 /* Update the BufferDstPort flags for each input port */
28813 }
28814
28815 /* Level2 S-Function Block: L4_MABX/<S393>/dsa_tcpip_setup (dsa_tcpip_setup_sfcn) */
28816 {
28817 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28818
28819 /* timing info */
28820 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnPeriod;
28821 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnOffset;
28822 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnTsMap;
28823 (void) memset((void*)sfcnPeriod, 0,
28824 sizeof(time_T)*1);
28825 (void) memset((void*)sfcnOffset, 0,
28826 sizeof(time_T)*1);
28827 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28828 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28829 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28830
28831 {
28832 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[3]);
28833 }
28834
28835 _ssSetBlkInfo2PortInfo2Ptr(rts,
28836 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[3]);
28837
28838 /* Set up the mdlInfo pointer */
28839 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28840
28841 /* Allocate memory of model methods 2 */
28842 {
28843 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[3]);
28844 }
28845
28846 /* Allocate memory of model methods 3 */
28847 {
28848 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[3]);
28849 }
28850
28851 /* Allocate memory of model methods 4 */
28852 {
28853 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[3]);
28854 }
28855
28856 /* Allocate memory for states auxilliary information */
28857 {
28858 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[3]);
28859 ssSetPeriodicStatesInfo(rts,
28860 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[3]);
28861 }
28862
28863 /* outputs */
28864 {
28865 ssSetPortInfoForOutputs(rts,
28866 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortInfo[0]);
28867 _ssSetNumOutputPorts(rts, 1);
28868 _ssSetPortInfo2ForOutputUnits(rts,
28869 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortUnits[0]);
28870 ssSetOutputPortUnit(rts, 0, 0);
28871 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28872 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortCoSimAttribute[0]);
28873 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28874
28875 /* port 0 */
28876 {
28877 _ssSetOutputPortNumDimensions(rts, 0, 1);
28878 ssSetOutputPortWidth(rts, 0, 1);
28879 ssSetOutputPortSignal(rts, 0, ((real_T *) &EthernetLinkStatus));
28880 }
28881 }
28882
28883 /* path info */
28884 ssSetModelName(rts, "dsa_tcpip_setup");
28885 ssSetPath(rts, "L4_MABX/ETHERNET/TCPIP_Setup/dsa_tcpip_setup");
28886 ssSetRTModel(rts,L4_MABX_M);
28887 ssSetParentSS(rts, (NULL));
28888 ssSetRootSS(rts, rts);
28889 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28890
28891 /* parameters */
28892 {
28893 mxArray **sfcnParams = (mxArray **)
28894 &L4_MABX_M->NonInlinedSFcns.Sfcn3.params;
28895 ssSetSFcnParamsCount(rts, 6);
28896 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
28897 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P1_Size);
28898 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P2_Size);
28899 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P3_Size);
28900 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P4_Size);
28901 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P5_Size);
28902 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P6_Size);
28903 }
28904
28905 /* work vectors */
28906 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28907 ssSetPWork(rts, (void **) &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28908
28909 {
28910 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28911 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWork;
28912 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28913 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWorkAux;
28914 ssSetSFcnDWork(rts, dWorkRecord);
28915 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28916 _ssSetNumDWork(rts, 2);
28917
28918 /* IWORK */
28919 ssSetDWorkWidth(rts, 0, 1);
28920 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28921 ssSetDWorkComplexSignal(rts, 0, 0);
28922 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28923
28924 /* PWORK */
28925 ssSetDWorkWidth(rts, 1, 1);
28926 ssSetDWorkDataType(rts, 1,SS_POINTER);
28927 ssSetDWorkComplexSignal(rts, 1, 0);
28928 ssSetDWork(rts, 1, &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28929 }
28930
28931 /* registration */
28932 dsa_tcpip_setup_sfcn(rts);
28933 sfcnInitializeSizes(rts);
28934 sfcnInitializeSampleTimes(rts);
28935
28936 /* adjust sample time */
28937 ssSetSampleTime(rts, 0, 0.01);
28938 ssSetOffsetTime(rts, 0, 0.0);
28939 sfcnTsMap[0] = 0;
28940
28941 /* set compiled values of dynamic vector attributes */
28942 ssSetNumNonsampledZCs(rts, 0);
28943
28944 /* Update connectivity flags for each port */
28945 _ssSetOutputPortConnected(rts, 0, 1);
28946 _ssSetOutputPortBeingMerged(rts, 0, 0);
28947
28948 /* Update the BufferDstPort flags for each input port */
28949 }
28950
28951 /* Level2 S-Function Block: L4_MABX/<S394>/TCPIP_Com (dsa_tcpip_udp_sfcn) */
28952 {
28953 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28954
28955 /* timing info */
28956 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnPeriod;
28957 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnOffset;
28958 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnTsMap;
28959 (void) memset((void*)sfcnPeriod, 0,
28960 sizeof(time_T)*1);
28961 (void) memset((void*)sfcnOffset, 0,
28962 sizeof(time_T)*1);
28963 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28964 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28965 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28966
28967 {
28968 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[4]);
28969 }
28970
28971 _ssSetBlkInfo2PortInfo2Ptr(rts,
28972 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[4]);
28973
28974 /* Set up the mdlInfo pointer */
28975 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28976
28977 /* Allocate memory of model methods 2 */
28978 {
28979 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[4]);
28980 }
28981
28982 /* Allocate memory of model methods 3 */
28983 {
28984 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[4]);
28985 }
28986
28987 /* Allocate memory of model methods 4 */
28988 {
28989 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[4]);
28990 }
28991
28992 /* Allocate memory for states auxilliary information */
28993 {
28994 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[4]);
28995 ssSetPeriodicStatesInfo(rts,
28996 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[4]);
28997 }
28998
28999 /* inputs */
29000 {
29001 _ssSetNumInputPorts(rts, 3);
29002 ssSetPortInfoForInputs(rts,
29003 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortInfo[0]);
29004 _ssSetPortInfo2ForInputUnits(rts,
29005 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortUnits[0]);
29006 ssSetInputPortUnit(rts, 0, 0);
29007 ssSetInputPortUnit(rts, 1, 0);
29008 ssSetInputPortUnit(rts, 2, 0);
29009 _ssSetPortInfo2ForInputCoSimAttribute(rts,
29010 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortCoSimAttribute[0]);
29011 ssSetInputPortIsContinuousQuantity(rts, 0, 0);
29012 ssSetInputPortIsContinuousQuantity(rts, 1, 0);
29013 ssSetInputPortIsContinuousQuantity(rts, 2, 0);
29014
29015 /* port 0 */
29016 {
29017 boolean_T const **sfcnUPtrs = (boolean_T const **)
29018 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs0;
29019 sfcnUPtrs[0] = &L4_MABX_B.Enable;
29020 ssSetInputPortSignalPtrs(rts, 0, (InputPtrsType)&sfcnUPtrs[0]);
29021 _ssSetInputPortNumDimensions(rts, 0, 1);
29022 ssSetInputPortWidth(rts, 0, 1);
29023 }
29024
29025 /* port 1 */
29026 {
29027 uint32_T const **sfcnUPtrs = (uint32_T const **)
29028 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs1;
29029 sfcnUPtrs[0] = &L4_MABX_B.Encoder_o2;
29030 ssSetInputPortSignalPtrs(rts, 1, (InputPtrsType)&sfcnUPtrs[0]);
29031 _ssSetInputPortNumDimensions(rts, 1, 1);
29032 ssSetInputPortWidth(rts, 1, 1);
29033 }
29034
29035 /* port 2 */
29036 {
29037 uint8_T const **sfcnUPtrs = (uint8_T const **)
29038 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs2;
29039
29040 {
29041 int_T i1;
29042 const uint8_T *u2 = L4_MABX_B.Encoder_o1;
29043 for (i1=0; i1 < 22; i1++) {
29044 sfcnUPtrs[i1] = &u2[i1];
29045 }
29046 }
29047
29048 ssSetInputPortSignalPtrs(rts, 2, (InputPtrsType)&sfcnUPtrs[0]);
29049 _ssSetInputPortNumDimensions(rts, 2, 1);
29050 ssSetInputPortWidth(rts, 2, 22);
29051 }
29052 }
29053
29054 /* outputs */
29055 {
29056 ssSetPortInfoForOutputs(rts,
29057 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortInfo[0]);
29058 _ssSetNumOutputPorts(rts, 3);
29059 _ssSetPortInfo2ForOutputUnits(rts,
29060 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortUnits[0]);
29061 ssSetOutputPortUnit(rts, 0, 0);
29062 ssSetOutputPortUnit(rts, 1, 0);
29063 ssSetOutputPortUnit(rts, 2, 0);
29064 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
29065 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortCoSimAttribute[0]);
29066 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
29067 ssSetOutputPortIsContinuousQuantity(rts, 1, 0);
29068 ssSetOutputPortIsContinuousQuantity(rts, 2, 0);
29069
29070 /* port 0 */
29071 {
29072 _ssSetOutputPortNumDimensions(rts, 0, 1);
29073 ssSetOutputPortWidth(rts, 0, 3);
29074 ssSetOutputPortSignal(rts, 0, ((uint32_T *) L4_MABX_B.TCPIP_Com_o1));
29075 }
29076
29077 /* port 1 */
29078 {
29079 _ssSetOutputPortNumDimensions(rts, 1, 1);
29080 ssSetOutputPortWidth(rts, 1, 1);
29081 ssSetOutputPortSignal(rts, 1, ((uint32_T *) &L4_MABX_B.TCPIP_Com_o2));
29082 }
29083
29084 /* port 2 */
29085 {
29086 _ssSetOutputPortNumDimensions(rts, 2, 1);
29087 ssSetOutputPortWidth(rts, 2, 128);
29088 ssSetOutputPortSignal(rts, 2, ((uint8_T *) L4_MABX_B.TCPIP_Com_o3));
29089 }
29090 }
29091
29092 /* path info */
29093 ssSetModelName(rts, "TCPIP_Com");
29094 ssSetPath(rts, "L4_MABX/ETHERNET/UDPIP_Communication/TCPIP_Com");
29095 ssSetRTModel(rts,L4_MABX_M);
29096 ssSetParentSS(rts, (NULL));
29097 ssSetRootSS(rts, rts);
29098 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
29099
29100 /* parameters */
29101 {
29102 mxArray **sfcnParams = (mxArray **)
29103 &L4_MABX_M->NonInlinedSFcns.Sfcn4.params;
29104 ssSetSFcnParamsCount(rts, 6);
29105 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
29106 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.TCPIP_Com_P1_Size);
29107 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.TCPIP_Com_P2_Size);
29108 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.TCPIP_Com_P3_Size);
29109 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.TCPIP_Com_P4_Size);
29110 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.TCPIP_Com_P5_Size);
29111 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.TCPIP_Com_P6_Size);
29112 }
29113
29114 /* work vectors */
29115 ssSetPWork(rts, (void **) &L4_MABX_DW.TCPIP_Com_PWORK);
29116
29117 {
29118 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
29119 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWork;
29120 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
29121 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWorkAux;
29122 ssSetSFcnDWork(rts, dWorkRecord);
29123 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
29124 _ssSetNumDWork(rts, 1);
29125
29126 /* PWORK */
29127 ssSetDWorkWidth(rts, 0, 1);
29128 ssSetDWorkDataType(rts, 0,SS_POINTER);
29129 ssSetDWorkComplexSignal(rts, 0, 0);
29130 ssSetDWork(rts, 0, &L4_MABX_DW.TCPIP_Com_PWORK);
29131 }
29132
29133 /* registration */
29134 dsa_tcpip_udp_sfcn(rts);
29135 sfcnInitializeSizes(rts);
29136 sfcnInitializeSampleTimes(rts);
29137
29138 /* adjust sample time */
29139 ssSetSampleTime(rts, 0, 0.01);
29140 ssSetOffsetTime(rts, 0, 0.0);
29141 sfcnTsMap[0] = 0;
29142
29143 /* set compiled values of dynamic vector attributes */
29144 ssSetNumNonsampledZCs(rts, 0);
29145
29146 /* Update connectivity flags for each port */
29147 _ssSetInputPortConnected(rts, 0, 1);
29148 _ssSetInputPortConnected(rts, 1, 1);
29149 _ssSetInputPortConnected(rts, 2, 1);
29150 _ssSetOutputPortConnected(rts, 0, 1);
29151 _ssSetOutputPortConnected(rts, 1, 1);
29152 _ssSetOutputPortConnected(rts, 2, 1);
29153 _ssSetOutputPortBeingMerged(rts, 0, 0);
29154 _ssSetOutputPortBeingMerged(rts, 1, 0);
29155 _ssSetOutputPortBeingMerged(rts, 2, 0);
29156
29157 /* Update the BufferDstPort flags for each input port */
29158 ssSetInputPortBufferDstPort(rts, 0, -1);
29159 ssSetInputPortBufferDstPort(rts, 1, -1);
29160 ssSetInputPortBufferDstPort(rts, 2, -1);
29161 }
29162 }
29163
29164 {
29165 /* user code (registration function declaration) */
29166 /*Initialize global TRC pointers. */
29167 L4_MABX_rti_init_trc_pointers();
29168 }
29169
29170 /* Start for Enabled SubSystem: '<S735>/Slew_at_event' */
29171 L4_MABX_DW.Slew_at_event_MODE = false;
29172
29173 /* End of Start for SubSystem: '<S735>/Slew_at_event' */
29174
29175 /* Start for S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
29176 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29177 {
29178 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29179 sfcnStart(rts);
29180 if (ssGetErrorStatus(rts) != (NULL))
29181 return;
29182 }
29183
29184 /* Start for Constant: '<S3>/Enable' */
29185 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
29186
29187 /* Start for S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S400>/Encoder' */
29188 Init_Tx_RTMapsEncode();
29189
29190 /* Start for S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
29191 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29192 {
29193 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29194 sfcnStart(rts);
29195 if (ssGetErrorStatus(rts) != (NULL))
29196 return;
29197 }
29198
29199 /* Start for S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S397>/Decoder' */
29200 Init_Rx_RTMapsDecode();
29201
29202 /* Start for Atomic SubSystem: '<S65>/Task_10ms' */
29203 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
29204 L4_MABX_B.distanceSpdTarget_e = L4_MABX_P.TmpRTBAtSignalConversion1Inport;
29205
29206 /* Start for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
29207 L4_MABX_DW.Throttle_controller_gov_MODE = false;
29208
29209 /* Start for Enabled SubSystem: '<S238>/Calculate_D_term' */
29210 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_h);
29211
29212 /* End of Start for SubSystem: '<S238>/Calculate_D_term' */
29213
29214 /* Start for Enabled SubSystem: '<S238>/Calculate_I_term' */
29215 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_n);
29216
29217 /* End of Start for SubSystem: '<S238>/Calculate_I_term' */
29218
29219 /* End of Start for SubSystem: '<S79>/Throttle_controller_gov' */
29220
29221 /* Start for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29222 L4_MABX_DW.Determine_shift_interlock_brake = false;
29223
29224 /* End of Start for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29225
29226 /* Start for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29227 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
29228
29229 /* End of Start for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29230
29231 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29232 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
29233
29234 /* Start for Enabled SubSystem: '<S106>/Calculate_D_term' */
29235 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term);
29236
29237 /* End of Start for SubSystem: '<S106>/Calculate_D_term' */
29238
29239 /* Start for Enabled SubSystem: '<S106>/Calculate_I_term' */
29240 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term);
29241
29242 /* End of Start for SubSystem: '<S106>/Calculate_I_term' */
29243
29244 /* End of Start for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29245
29246 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
29247 L4_MABX_B.pathSpdLimit_a = L4_MABX_P.TmpRTBAtSignalConversion3Inport;
29248
29249 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
29250 L4_MABX_B.distance_o = L4_MABX_P.TmpRTBAtSignalConversion2Inport;
29251
29252 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29253 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
29254
29255 /* Start for Enabled SubSystem: '<S144>/Calculate_D_term' */
29256 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_p);
29257
29258 /* End of Start for SubSystem: '<S144>/Calculate_D_term' */
29259
29260 /* Start for Enabled SubSystem: '<S144>/Calculate_I_term' */
29261 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_e);
29262
29263 /* End of Start for SubSystem: '<S144>/Calculate_I_term' */
29264
29265 /* End of Start for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29266
29267 /* Start for Enabled SubSystem: '<S79>/Engine_speed_target' */
29268 L4_MABX_DW.Engine_speed_target_MODE = false;
29269
29270 /* End of Start for SubSystem: '<S79>/Engine_speed_target' */
29271
29272 /* Start for Enabled SubSystem: '<S277>/Slew_at_event' */
29273 L4_MABX_DW.Slew_at_event_MODE_d = false;
29274
29275 /* End of Start for SubSystem: '<S277>/Slew_at_event' */
29276
29277 /* Start for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
29278 L4_MABX_B.previewSteeringAngle_b = L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
29279
29280 /* Start for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
29281 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
29282 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
29283
29284 /* Start for RateTransition: '<S278>/TmpRTBAtAdd2Inport2' */
29285 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
29286
29287 /* End of Start for SubSystem: '<S65>/Task_10ms' */
29288
29289 /* Start for Atomic SubSystem: '<S824>/CAN_TX_10ms' */
29290
29291 /* Start for Width: '<S981>/Width' */
29292 L4_MABX_B.Width_b = 16U;
29293
29294 /* End of Start for SubSystem: '<S824>/CAN_TX_10ms' */
29295
29296 /* Start for Atomic SubSystem: '<S824>/CAN_TX_20ms' */
29297
29298 /* Start for Width: '<S1009>/Width' */
29299 L4_MABX_B.Width_p = 16U;
29300
29301 /* End of Start for SubSystem: '<S824>/CAN_TX_20ms' */
29302
29303 /* Start for Atomic SubSystem: '<S824>/CAN_TX_5000ms' */
29304
29305 /* Start for Width: '<S1024>/Width' */
29306 L4_MABX_B.Width = 8U;
29307
29308 /* End of Start for SubSystem: '<S824>/CAN_TX_5000ms' */
29309
29310 /* Start for RateTransition: '<S1053>/TmpRTBAtANDInport1' */
29311 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29312
29313 /* Start for Atomic SubSystem: '<S65>/Task_20ms' */
29314 /* Start for Constant: '<S390>/InitialHeading' */
29315 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
29316
29317 /* Start for Constant: '<S390>/InitialPosition' */
29318 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
29319
29320 /* Start for Constant: '<S390>/InitialXPosition' */
29321 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
29322
29323 /* Start for Constant: '<S390>/InitialYPosition' */
29324 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
29325
29326 /* End of Start for SubSystem: '<S65>/Task_20ms' */
29327
29328 /* Start for S-Function (rti_commonblock): '<S403>/S-Function1' incorporates:
29329 * SubSystem: '<S393>/Background_Task'
29330 */
29331 L4_MA_Background_Task_Start();
29332
29333 /* End of Start for S-Function (rti_commonblock): '<S403>/S-Function1' */
29334
29335 /* Start for S-Function (rti_commonblock): '<S409>/S-Function1' incorporates:
29336 * SubSystem: '<S393>/Interrupt_Task'
29337 */
29338 L4_MAB_Interrupt_Task_Start();
29339
29340 /* End of Start for S-Function (rti_commonblock): '<S409>/S-Function1' */
29341 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29342 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29343 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29344 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29345 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29346 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29347 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_i = POS_ZCSIG;
29348 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = POS_ZCSIG;
29349
29350 {
29351 int32_T i;
29352
29353 /* InitializeConditions for UnitDelay: '<S771>/FixPt Unit Delay2' */
29354 L4_MABX_DW.FixPtUnitDelay2_DSTATE =
29355 L4_MABX_P.FixPtUnitDelay2_InitialCondit_d;
29356
29357 /* InitializeConditions for UnitDelay: '<S771>/FixPt Unit Delay1' */
29358 L4_MABX_DW.FixPtUnitDelay1_DSTATE =
29359 L4_MABX_P.FixPtUnitDelay1_InitialCondi_oj;
29360
29361 /* InitializeConditions for UnitDelay: '<S763>/FixPt Unit Delay2' */
29362 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c =
29363 L4_MABX_P.FixPtUnitDelay2_InitialCondit_b;
29364
29365 /* InitializeConditions for UnitDelay: '<S763>/FixPt Unit Delay1' */
29366 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
29367 L4_MABX_P.FixPtUnitDelay1_InitialCondit_n;
29368
29369 /* InitializeConditions for UnitDelay: '<S787>/FixPt Unit Delay2' */
29370 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d =
29371 L4_MABX_P.FixPtUnitDelay2_InitialCondi_gw;
29372
29373 /* InitializeConditions for UnitDelay: '<S787>/FixPt Unit Delay1' */
29374 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c =
29375 L4_MABX_P.FixPtUnitDelay1_InitialCondi_hj;
29376
29377 /* InitializeConditions for UnitDelay: '<S779>/FixPt Unit Delay2' */
29378 L4_MABX_DW.FixPtUnitDelay2_DSTATE_h =
29379 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pb;
29380
29381 /* InitializeConditions for UnitDelay: '<S779>/FixPt Unit Delay1' */
29382 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p =
29383 L4_MABX_P.FixPtUnitDelay1_InitialCondit_e;
29384
29385 /* InitializeConditions for UnitDelay: '<S741>/Unit_Delay' */
29386 L4_MABX_DW.Unit_Delay_DSTATE_mb = L4_MABX_P.Unit_Delay_InitialCondition_bn;
29387
29388 /* InitializeConditions for UnitDelay: '<S808>/Unit_Delay1' */
29389 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Unit_Delay1_InitialCondition_ja;
29390
29391 /* InitializeConditions for UnitDelay: '<S808>/Unit_Delay2' */
29392 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_P.Unit_Delay2_InitialCondition_n;
29393
29394 /* InitializeConditions for UnitDelay: '<S741>/Unit_Delay1' */
29395 L4_MABX_DW.Unit_Delay1_DSTATE_c = L4_MABX_P.Unit_Delay1_InitialCondition_e;
29396
29397 /* InitializeConditions for UnitDelay: '<S809>/Unit_Delay1' */
29398 L4_MABX_DW.Unit_Delay1_DSTATE_j = L4_MABX_P.Unit_Delay1_InitialCondition_d;
29399
29400 /* InitializeConditions for UnitDelay: '<S809>/Unit_Delay2' */
29401 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_P.Unit_Delay2_InitialCondition_k;
29402
29403 /* InitializeConditions for UnitDelay: '<S807>/FixPt Unit Delay2' */
29404 L4_MABX_DW.FixPtUnitDelay2_DSTATE_dm =
29405 L4_MABX_P.FixPtUnitDelay2_InitialCondit_o;
29406
29407 /* InitializeConditions for UnitDelay: '<S807>/FixPt Unit Delay1' */
29408 L4_MABX_DW.FixPtUnitDelay1_DSTATE_cc =
29409 L4_MABX_P.FixPtUnitDelay1_InitialCondi_eg;
29410
29411 /* InitializeConditions for UnitDelay: '<S806>/FixPt Unit Delay2' */
29412 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i =
29413 L4_MABX_P.FixPtUnitDelay2_InitialCondi_g1;
29414
29415 /* InitializeConditions for UnitDelay: '<S806>/FixPt Unit Delay1' */
29416 L4_MABX_DW.FixPtUnitDelay1_DSTATE_od =
29417 L4_MABX_P.FixPtUnitDelay1_InitialCondit_k;
29418
29419 /* InitializeConditions for UnitDelay: '<S795>/FixPt Unit Delay2' */
29420 L4_MABX_DW.FixPtUnitDelay2_DSTATE_k =
29421 L4_MABX_P.FixPtUnitDelay2_InitialCondi_io;
29422
29423 /* InitializeConditions for UnitDelay: '<S795>/FixPt Unit Delay1' */
29424 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l =
29425 L4_MABX_P.FixPtUnitDelay1_InitialCondi_gy;
29426
29427 /* InitializeConditions for RateTransition: '<S412>/Rate Transition' */
29428 L4_MABX_DW.RateTransition_Buffer0 =
29429 L4_MABX_P.RateTransition_InitialCondition;
29430 L4_MABX_DW.RateTransition_write_buf = -1;
29431 L4_MABX_DW.RateTransition_read_buf = -1;
29432
29433 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay3' */
29434 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_P.Unit_Delay3_InitialCondition;
29435
29436 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay' */
29437 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Unit_Delay_InitialCondition_d5;
29438
29439 /* InitializeConditions for UnitDelay: '<S650>/Unit_Delay' */
29440 L4_MABX_DW.Unit_Delay_DSTATE_by = L4_MABX_P.Unit_Delay_InitialCondition_g4;
29441
29442 /* InitializeConditions for S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
29443 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29444 {
29445 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29446 sfcnInitializeConditions(rts);
29447 if (ssGetErrorStatus(rts) != (NULL))
29448 return;
29449 }
29450
29451 /* InitializeConditions for DiscretePulseGenerator: '<S392>/Heartbeat' */
29452 L4_MABX_DW.clockTickCounter = 0;
29453
29454 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29455 L4_MABX_DW.Unit_Delay_79_DSTATE = L4_MABX_P.Unit_Delay_79_InitialCondition;
29456 L4_MABX_DW.Unit_Delay_80_DSTATE = L4_MABX_P.Unit_Delay_80_InitialCondition;
29457 L4_MABX_DW.Unit_Delay_81_DSTATE = L4_MABX_P.Unit_Delay_81_InitialCondition;
29458 L4_MABX_DW.Unit_Delay_139_DSTATE = L4_MABX_P.Unit_Delay_139_InitialCondition;
29459 L4_MABX_DW.Unit_Delay_138_DSTATE = L4_MABX_P.Unit_Delay_138_InitialCondition;
29460 L4_MABX_DW.Unit_Delay_45_DSTATE = L4_MABX_P.Unit_Delay_45_InitialCondition;
29461 L4_MABX_DW.Unit_Delay_47_DSTATE = L4_MABX_P.Unit_Delay_47_InitialCondition;
29462
29463 /* InitializeConditions for S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
29464 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29465 {
29466 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29467 sfcnInitializeConditions(rts);
29468 if (ssGetErrorStatus(rts) != (NULL))
29469 return;
29470 }
29471
29472 /* InitializeConditions for UnitDelay: '<S398>/Delay Input1' */
29473 L4_MABX_DW.DelayInput1_DSTATE_n = L4_MABX_P.DetectRisePositive1_vinit;
29474
29475 /* InitializeConditions for UnitDelay: '<S396>/Unit Delay' */
29476 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_P.UnitDelay_InitialCondition_h;
29477
29478 /* InitializeConditions for UnitDelay: '<S834>/Unit Delay2' */
29479 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_P.UnitDelay2_InitialCondition;
29480
29481 /* InitializeConditions for UnitDelay: '<S834>/Unit Delay1' */
29482 L4_MABX_DW.UnitDelay1_DSTATE_i = L4_MABX_P.UnitDelay1_InitialCondition_po;
29483
29484 /* InitializeConditions for UnitDelay: '<S834>/Unit Delay3' */
29485 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_P.UnitDelay3_InitialCondition;
29486
29487 /* InitializeConditions for RateTransition: '<S1053>/TmpRTBAtANDInport1' */
29488 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 =
29489 L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29490
29491 /* InitializeConditions for DiscretePulseGenerator: '<S1053>/Flash' */
29492 L4_MABX_DW.clockTickCounter_n = 0;
29493
29494 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29495 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_P.Unit_Delay_1_InitialCondition_f;
29496 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_P.Unit_Delay_10_InitialCondition;
29497 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_P.Unit_Delay_100_InitialCondition;
29498 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_P.Unit_Delay_101_InitialCondition;
29499 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_P.Unit_Delay_102_InitialCondition;
29500 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_P.Unit_Delay_103_InitialCondition;
29501 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_P.Unit_Delay_104_InitialCondition;
29502 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_P.Unit_Delay_105_InitialCondition;
29503 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_P.Unit_Delay_106_InitialCondition;
29504 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_P.Unit_Delay_107_InitialCondition;
29505 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_P.Unit_Delay_108_InitialCondition;
29506 L4_MABX_DW.Unit_Delay_109_DSTATE = L4_MABX_P.Unit_Delay_109_InitialCondition;
29507 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_P.Unit_Delay_11_InitialCondition;
29508 L4_MABX_DW.Unit_Delay_110_DSTATE = L4_MABX_P.Unit_Delay_110_InitialCondition;
29509 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_P.Unit_Delay_111_InitialCondition;
29510 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_P.Unit_Delay_112_InitialCondition;
29511 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_P.Unit_Delay_113_InitialCondition;
29512 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_P.Unit_Delay_114_InitialCondition;
29513 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_P.Unit_Delay_115_InitialCondition;
29514 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_P.Unit_Delay_116_InitialCondition;
29515 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_P.Unit_Delay_117_InitialCondition;
29516 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_P.Unit_Delay_118_InitialCondition;
29517 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_P.Unit_Delay_119_InitialCondition;
29518 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_P.Unit_Delay_12_InitialCondition;
29519 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_P.Unit_Delay_120_InitialCondition;
29520 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_P.Unit_Delay_121_InitialCondition;
29521 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_P.Unit_Delay_122_InitialCondition;
29522 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_P.Unit_Delay_123_InitialCondition;
29523 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_P.Unit_Delay_124_InitialCondition;
29524 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_P.Unit_Delay_125_InitialCondition;
29525 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_P.Unit_Delay_126_InitialCondition;
29526 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_P.Unit_Delay_127_InitialCondition;
29527 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_P.Unit_Delay_128_InitialCondition;
29528 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_P.Unit_Delay_129_InitialCondition;
29529 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_P.Unit_Delay_13_InitialCondition;
29530 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_P.Unit_Delay_130_InitialCondition;
29531 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_P.Unit_Delay_131_InitialCondition;
29532 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_P.Unit_Delay_132_InitialCondition;
29533 L4_MABX_DW.Unit_Delay_133_DSTATE = L4_MABX_P.Unit_Delay_133_InitialCondition;
29534 L4_MABX_DW.Unit_Delay_134_DSTATE = L4_MABX_P.Unit_Delay_134_InitialCondition;
29535 L4_MABX_DW.Unit_Delay_135_DSTATE = L4_MABX_P.Unit_Delay_135_InitialCondition;
29536 L4_MABX_DW.Unit_Delay_136_DSTATE = L4_MABX_P.Unit_Delay_136_InitialCondition;
29537 L4_MABX_DW.Unit_Delay_137_DSTATE = L4_MABX_P.Unit_Delay_137_InitialCondition;
29538 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_P.Unit_Delay_14_InitialCondition;
29539 L4_MABX_DW.Unit_Delay_140_DSTATE = L4_MABX_P.Unit_Delay_140_InitialCondition;
29540 L4_MABX_DW.Unit_Delay_141_DSTATE = L4_MABX_P.Unit_Delay_141_InitialCondition;
29541 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_P.Unit_Delay_15_InitialCondition;
29542 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_P.Unit_Delay_16_InitialCondition;
29543 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_P.Unit_Delay_17_InitialCondition;
29544 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_P.Unit_Delay_18_InitialCondition;
29545 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_P.Unit_Delay_19_InitialCondition;
29546 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_P.Unit_Delay_2_InitialCondition_f;
29547 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Unit_Delay_20_InitialCondition;
29548 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_P.Unit_Delay_21_InitialCondition;
29549 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_P.Unit_Delay_22_InitialCondition;
29550 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_P.Unit_Delay_23_InitialCondition;
29551 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_P.Unit_Delay_24_InitialCondition;
29552 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_P.Unit_Delay_25_InitialCondition;
29553 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_P.Unit_Delay_26_InitialCondition;
29554 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_P.Unit_Delay_27_InitialCondition;
29555 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_P.Unit_Delay_28_InitialCondition;
29556 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_P.Unit_Delay_29_InitialCondition;
29557 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_P.Unit_Delay_3_InitialCondition_f;
29558 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_P.Unit_Delay_30_InitialCondition;
29559 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_P.Unit_Delay_31_InitialCondition;
29560 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_P.Unit_Delay_32_InitialCondition;
29561 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_P.Unit_Delay_33_InitialCondition;
29562 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_P.Unit_Delay_34_InitialCondition;
29563 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_P.Unit_Delay_35_InitialCondition;
29564 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_P.Unit_Delay_36_InitialCondition;
29565 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_P.Unit_Delay_37_InitialCondition;
29566 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_P.Unit_Delay_38_InitialCondition;
29567 L4_MABX_DW.Unit_Delay_39_DSTATE = L4_MABX_P.Unit_Delay_39_InitialCondition;
29568 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_P.Unit_Delay_4_InitialCondition;
29569 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_P.Unit_Delay_40_InitialCondition;
29570 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_P.Unit_Delay_41_InitialCondition;
29571 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_P.Unit_Delay_42_InitialCondition;
29572 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_P.Unit_Delay_43_InitialCondition;
29573 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_P.Unit_Delay_44_InitialCondition;
29574 L4_MABX_DW.Unit_Delay_46_DSTATE = L4_MABX_P.Unit_Delay_46_InitialCondition;
29575 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_P.Unit_Delay_48_InitialCondition;
29576 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_P.Unit_Delay_49_InitialCondition;
29577 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_P.Unit_Delay_5_InitialCondition;
29578 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_P.Unit_Delay_50_InitialCondition;
29579 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_P.Unit_Delay_51_InitialCondition;
29580 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Unit_Delay_52_InitialCondition;
29581 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_P.Unit_Delay_53_InitialCondition;
29582 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Unit_Delay_54_InitialCondition;
29583 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Unit_Delay_55_InitialCondition;
29584 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Unit_Delay_56_InitialCondition;
29585 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Unit_Delay_57_InitialCondition;
29586 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Unit_Delay_58_InitialCondition;
29587 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Unit_Delay_59_InitialCondition;
29588 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_P.Unit_Delay_6_InitialCondition;
29589 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Unit_Delay_60_InitialCondition;
29590 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Unit_Delay_61_InitialCondition;
29591 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Unit_Delay_62_InitialCondition;
29592 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Unit_Delay_63_InitialCondition;
29593 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Unit_Delay_64_InitialCondition;
29594 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Unit_Delay_65_InitialCondition;
29595 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Unit_Delay_66_InitialCondition;
29596 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Unit_Delay_67_InitialCondition;
29597 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Unit_Delay_68_InitialCondition;
29598 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Unit_Delay_69_InitialCondition;
29599 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_P.Unit_Delay_7_InitialCondition;
29600 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Unit_Delay_70_InitialCondition;
29601 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Unit_Delay_71_InitialCondition;
29602 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Unit_Delay_72_InitialCondition;
29603 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Unit_Delay_73_InitialCondition;
29604 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Unit_Delay_74_InitialCondition;
29605 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Unit_Delay_75_InitialCondition;
29606 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Unit_Delay_76_InitialCondition;
29607 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_P.Unit_Delay_77_InitialCondition;
29608 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Unit_Delay_78_InitialCondition;
29609 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.Unit_Delay_8_InitialCondition;
29610 L4_MABX_DW.Unit_Delay_82_DSTATE = L4_MABX_P.Unit_Delay_82_InitialCondition;
29611 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_P.Unit_Delay_83_InitialCondition;
29612 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_P.Unit_Delay_84_InitialCondition;
29613 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_P.Unit_Delay_85_InitialCondition;
29614 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_P.Unit_Delay_86_InitialCondition;
29615 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_P.Unit_Delay_87_InitialCondition;
29616 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_P.Unit_Delay_88_InitialCondition;
29617 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_P.Unit_Delay_89_InitialCondition;
29618 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_P.Unit_Delay_9_InitialCondition;
29619 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_P.Unit_Delay_90_InitialCondition;
29620 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_P.Unit_Delay_91_InitialCondition;
29621 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_P.Unit_Delay_92_InitialCondition;
29622 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_P.Unit_Delay_93_InitialCondition;
29623 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_P.Unit_Delay_94_InitialCondition;
29624 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_P.Unit_Delay_95_InitialCondition;
29625 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_P.Unit_Delay_96_InitialCondition;
29626 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_P.Unit_Delay_97_InitialCondition;
29627 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_P.Unit_Delay_98_InitialCondition;
29628 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_P.Unit_Delay_99_InitialCondition;
29629
29630 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay2' */
29631 L4_MABX_DW.Unit_Delay2_DSTATE_j = L4_MABX_P.Unit_Delay2_InitialCondition_e;
29632
29633 /* InitializeConditions for UnitDelay: '<S644>/Unit_Delay1' */
29634 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Unit_Delay1_InitialCondition_d1;
29635
29636 /* InitializeConditions for UnitDelay: '<S651>/Unit_Delay' */
29637 L4_MABX_DW.Unit_Delay_DSTATE_j0 = L4_MABX_P.Unit_Delay_InitialCondition_ko;
29638
29639 /* InitializeConditions for UnitDelay: '<S10>/Unit_Delay' */
29640 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Unit_Delay_InitialCondition_jp;
29641
29642 /* SystemInitialize for Enabled SubSystem: '<S492>/AIR1' */
29643 /* SystemInitialize for Outport: '<S493>/PneumaticSupplyPress' */
29644 L4_MABX_B.SFunction1_o1_k5 = L4_MABX_P.PneumaticSupplyPress_Y0;
29645
29646 /* SystemInitialize for Outport: '<S493>/ParkingAnd_orTrailerAirPress' */
29647 L4_MABX_B.SFunction1_o2_if = L4_MABX_P.ParkingAnd_orTrailerAirPress_Y0;
29648
29649 /* SystemInitialize for Outport: '<S493>/ServiceBrakeCircuit1AirPress' */
29650 L4_MABX_B.SFunction1_o3_kl = L4_MABX_P.ServiceBrakeCircuit1AirPress_Y0;
29651
29652 /* SystemInitialize for Outport: '<S493>/ServiceBrakeCircuit2AirPress' */
29653 L4_MABX_B.SFunction1_o4_dd = L4_MABX_P.ServiceBrakeCircuit2AirPress_Y0;
29654
29655 /* SystemInitialize for Outport: '<S493>/AuxEquipmentSupplyPress' */
29656 L4_MABX_B.SFunction1_o5_aw = L4_MABX_P.AuxEquipmentSupplyPress_Y0;
29657
29658 /* SystemInitialize for Outport: '<S493>/AirSuspensionSupplyPress' */
29659 L4_MABX_B.SFunction1_o6_pp = L4_MABX_P.AirSuspensionSupplyPress_Y0;
29660
29661 /* SystemInitialize for Outport: '<S493>/AirCompressorStatus' */
29662 L4_MABX_B.SFunction1_o7_e = L4_MABX_P.AirCompressorStatus_Y0;
29663
29664 /* SystemInitialize for Outport: '<S493>/PowertrainCircuitAirSupplyPress' */
29665 L4_MABX_B.SFunction1_o8_kd = L4_MABX_P.PowertrainCircuitAirSupplyPress;
29666
29667 /* SystemInitialize for Outport: '<S493>/RX status' */
29668 L4_MABX_B.SFunction1_o9_g = L4_MABX_P.RXstatus_Y0_o;
29669
29670 /* SystemInitialize for Outport: '<S493>/RX time' */
29671 L4_MABX_B.SFunction1_o10_fpb = L4_MABX_P.RXtime_Y0_c;
29672
29673 /* SystemInitialize for Outport: '<S493>/RX delta time' */
29674 L4_MABX_B.SFunction1_o11_a = L4_MABX_P.RXdeltatime_Y0_a;
29675
29676 /* End of SystemInitialize for SubSystem: '<S492>/AIR1' */
29677
29678 /* SystemInitialize for Enabled SubSystem: '<S494>/AMB' */
29679 /* SystemInitialize for Outport: '<S495>/BarometricPress' */
29680 L4_MABX_B.SFunction1_o1_e3 = L4_MABX_P.BarometricPress_Y0;
29681
29682 /* SystemInitialize for Outport: '<S495>/CabInteriorTemp' */
29683 L4_MABX_B.SFunction1_o2_os = L4_MABX_P.CabInteriorTemp_Y0;
29684
29685 /* SystemInitialize for Outport: '<S495>/AmbientAirTemp' */
29686 L4_MABX_B.SFunction1_o3_f4 = L4_MABX_P.AmbientAirTemp_Y0;
29687
29688 /* SystemInitialize for Outport: '<S495>/EngAirIntakeTemp' */
29689 L4_MABX_B.SFunction1_o4_f0 = L4_MABX_P.EngAirIntakeTemp_Y0;
29690
29691 /* SystemInitialize for Outport: '<S495>/RoadSurfaceTemp' */
29692 L4_MABX_B.SFunction1_o5_bb = L4_MABX_P.RoadSurfaceTemp_Y0;
29693
29694 /* SystemInitialize for Outport: '<S495>/RX status' */
29695 L4_MABX_B.SFunction1_o6_pf = L4_MABX_P.RXstatus_Y0_m;
29696
29697 /* SystemInitialize for Outport: '<S495>/RX time' */
29698 L4_MABX_B.SFunction1_o7_nx = L4_MABX_P.RXtime_Y0_a;
29699
29700 /* SystemInitialize for Outport: '<S495>/RX delta time' */
29701 L4_MABX_B.SFunction1_o8_ko = L4_MABX_P.RXdeltatime_Y0_i;
29702
29703 /* End of SystemInitialize for SubSystem: '<S494>/AMB' */
29704
29705 /* SystemInitialize for Atomic SubSystem: '<S824>/CAN_TX_1000ms' */
29706 /* SystemInitialize for Enabled SubSystem: '<S844>/AIR1' */
29707 /* SystemInitialize for Outport: '<S845>/TX status' */
29708 L4_MABX_B.SFunction1_o1_hkw = L4_MABX_P.TXstatus_Y0;
29709
29710 /* SystemInitialize for Outport: '<S845>/TX time' */
29711 L4_MABX_B.SFunction1_o2_bn = L4_MABX_P.TXtime_Y0;
29712
29713 /* SystemInitialize for Outport: '<S845>/TX delta time' */
29714 L4_MABX_B.SFunction1_o3_b0 = L4_MABX_P.TXdeltatime_Y0;
29715
29716 /* SystemInitialize for Outport: '<S845>/TX delay time' */
29717 L4_MABX_B.SFunction1_o4_cv = L4_MABX_P.TXdelaytime_Y0;
29718
29719 /* End of SystemInitialize for SubSystem: '<S844>/AIR1' */
29720
29721 /* SystemInitialize for Enabled SubSystem: '<S852>/AMB' */
29722 /* SystemInitialize for Outport: '<S853>/TX status' */
29723 L4_MABX_B.SFunction1_o1_ei = L4_MABX_P.TXstatus_Y0_i;
29724
29725 /* SystemInitialize for Outport: '<S853>/TX time' */
29726 L4_MABX_B.SFunction1_o2_a4 = L4_MABX_P.TXtime_Y0_f;
29727
29728 /* SystemInitialize for Outport: '<S853>/TX delta time' */
29729 L4_MABX_B.SFunction1_o3_g = L4_MABX_P.TXdeltatime_Y0_b;
29730
29731 /* SystemInitialize for Outport: '<S853>/TX delay time' */
29732 L4_MABX_B.SFunction1_o4_bz = L4_MABX_P.TXdelaytime_Y0_l;
29733
29734 /* End of SystemInitialize for SubSystem: '<S852>/AMB' */
29735 /* End of SystemInitialize for SubSystem: '<S824>/CAN_TX_1000ms' */
29736
29737 /* SystemInitialize for Chart: '<S820>/Chart' */
29738 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 0U;
29739 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29740
29741 /* SystemInitialize for Chart: '<S738>/Health State Machine PWM Sensor 1' */
29742 L4_MABX_DW.is_FAILURE_DETECTED_o = L4_MABX_IN_NO_ACTIVE_CHILD;
29743 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 0U;
29744 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29745
29746 /* SystemInitialize for Chart: '<S738>/Health State Machine PWM Sensor 2' */
29747 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
29748 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 0U;
29749 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_ACTIVE_CHILD;
29750
29751 /* SystemInitialize for Enabled SubSystem: '<S735>/Slew_at_event' */
29752 /* InitializeConditions for UnitDelay: '<S813>/Unit_Delay' */
29753 L4_MABX_DW.Unit_Delay_DSTATE_jo = L4_MABX_P.Unit_Delay_InitialCondition_o4;
29754
29755 /* InitializeConditions for UnitDelay: '<S814>/Unit_Delay' */
29756 L4_MABX_DW.Unit_Delay_DSTATE_aa = L4_MABX_P.Unit_Delay_InitialCondition_lk;
29757
29758 /* InitializeConditions for UnitDelay: '<S817>/FixPt Unit Delay2' */
29759 L4_MABX_DW.FixPtUnitDelay2_DSTATE_dv =
29760 L4_MABX_P.FixPtUnitDelay2_InitialCondi_au;
29761
29762 /* InitializeConditions for UnitDelay: '<S817>/FixPt Unit Delay1' */
29763 L4_MABX_DW.FixPtUnitDelay1_DSTATE_oj =
29764 L4_MABX_P.FixPtUnitDelay1_InitialCondit_g;
29765
29766 /* InitializeConditions for UnitDelay: '<S812>/Unit_Delay' */
29767 L4_MABX_DW.Unit_Delay_DSTATE_jl = L4_MABX_P.Unit_Delay_InitialCondition_om;
29768
29769 /* SystemInitialize for Outport: '<S742>/F_Out_slewing' */
29770 L4_MABX_B.LogicalOperator_cj = L4_MABX_P.F_Out_slewing_Y0_d;
29771
29772 /* SystemInitialize for Outport: '<S742>/Out' */
29773 L4_MABX_B.If_Then_Else_ev.Switch = L4_MABX_P.Out_Y0_l;
29774
29775 /* End of SystemInitialize for SubSystem: '<S735>/Slew_at_event' */
29776
29777 /* SystemInitialize for Enabled SubSystem: '<S502>/CCVS1_31' */
29778 /* SystemInitialize for Outport: '<S503>/TwoSpeedAxleSwitch' */
29779 L4_MABX_B.SFunction1_o1_na = L4_MABX_P.TwoSpeedAxleSwitch_Y0_g;
29780
29781 /* SystemInitialize for Outport: '<S503>/ParkingBrakeSwitch' */
29782 L4_MABX_B.SFunction1_o2_hi = L4_MABX_P.ParkingBrakeSwitch_Y0_o;
29783
29784 /* SystemInitialize for Outport: '<S503>/CruiseCtrlPauseSwitch' */
29785 L4_MABX_B.SFunction1_o3_p5 = L4_MABX_P.CruiseCtrlPauseSwitch_Y0_g;
29786
29787 /* SystemInitialize for Outport: '<S503>/ParkBrakeReleaseInhibitRq' */
29788 L4_MABX_B.SFunction1_o4_li = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0_d;
29789
29790 /* SystemInitialize for Outport: '<S503>/WheelBasedVehicleSpeed' */
29791 L4_MABX_B.SFunction1_o5_i4 = L4_MABX_P.WheelBasedVehicleSpeed_Y0_i;
29792
29793 /* SystemInitialize for Outport: '<S503>/CruiseCtrlActive' */
29794 L4_MABX_B.SFunction1_o6_bq = L4_MABX_P.CruiseCtrlActive_Y0_j;
29795
29796 /* SystemInitialize for Outport: '<S503>/CruiseCtrlEnableSwitch' */
29797 L4_MABX_B.SFunction1_o7_id = L4_MABX_P.CruiseCtrlEnableSwitch_Y0_c;
29798
29799 /* SystemInitialize for Outport: '<S503>/BrakeSwitch' */
29800 L4_MABX_B.SFunction1_o8_k = L4_MABX_P.BrakeSwitch_Y0_n;
29801
29802 /* SystemInitialize for Outport: '<S503>/ClutchSwitch' */
29803 L4_MABX_B.SFunction1_o9_k1o = L4_MABX_P.ClutchSwitch_Y0_j;
29804
29805 /* SystemInitialize for Outport: '<S503>/CruiseCtrlSetSwitch' */
29806 L4_MABX_B.SFunction1_o10_h = L4_MABX_P.CruiseCtrlSetSwitch_Y0_h;
29807
29808 /* SystemInitialize for Outport: '<S503>/CruiseCtrlCoastSwitch' */
29809 L4_MABX_B.SFunction1_o11_i = L4_MABX_P.CruiseCtrlCoastSwitch_Y0_f;
29810
29811 /* SystemInitialize for Outport: '<S503>/CruiseCtrlResumeSwitch' */
29812 L4_MABX_B.SFunction1_o12_i = L4_MABX_P.CruiseCtrlResumeSwitch_Y0_c;
29813
29814 /* SystemInitialize for Outport: '<S503>/CruiseCtrlAccelerateSwitch' */
29815 L4_MABX_B.SFunction1_o13_i = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0_b;
29816
29817 /* SystemInitialize for Outport: '<S503>/CruiseCtrlSetSpeed' */
29818 L4_MABX_B.SFunction1_o14_b = L4_MABX_P.CruiseCtrlSetSpeed_Y0_c;
29819
29820 /* SystemInitialize for Outport: '<S503>/PTOGovernorState' */
29821 L4_MABX_B.SFunction1_o15_j = L4_MABX_P.PTOGovernorState_Y0_f;
29822
29823 /* SystemInitialize for Outport: '<S503>/CruiseCtrlStates' */
29824 L4_MABX_B.SFunction1_o16_a = L4_MABX_P.CruiseCtrlStates_Y0_l;
29825
29826 /* SystemInitialize for Outport: '<S503>/EngIdleIncrementSwitch' */
29827 L4_MABX_B.SFunction1_o17_m = L4_MABX_P.EngIdleIncrementSwitch_Y0_l;
29828
29829 /* SystemInitialize for Outport: '<S503>/EngIdleDecrementSwitch' */
29830 L4_MABX_B.SFunction1_o18_b = L4_MABX_P.EngIdleDecrementSwitch_Y0_m;
29831
29832 /* SystemInitialize for Outport: '<S503>/EngTestModeSwitch' */
29833 L4_MABX_B.SFunction1_o19_j = L4_MABX_P.EngTestModeSwitch_Y0_p;
29834
29835 /* SystemInitialize for Outport: '<S503>/EngShutdownOverrideSwitch' */
29836 L4_MABX_B.SFunction1_o20_oo = L4_MABX_P.EngShutdownOverrideSwitch_Y0_h;
29837
29838 /* SystemInitialize for Outport: '<S503>/RX status' */
29839 L4_MABX_B.SFunction1_o21_d = L4_MABX_P.RXstatus_Y0_hu;
29840
29841 /* SystemInitialize for Outport: '<S503>/RX time' */
29842 L4_MABX_B.SFunction1_o22_pp = L4_MABX_P.RXtime_Y0_fk;
29843
29844 /* SystemInitialize for Outport: '<S503>/RX delta time' */
29845 L4_MABX_B.SFunction1_o23_m = L4_MABX_P.RXdeltatime_Y0_n;
29846
29847 /* End of SystemInitialize for SubSystem: '<S502>/CCVS1_31' */
29848
29849 /* SystemInitialize for Enabled SubSystem: '<S513>/EBC2_0B1' */
29850 /* SystemInitialize for Outport: '<S514>/FrontAxleSpeed' */
29851 L4_MABX_B.SFunction1_o1_h54 = L4_MABX_P.FrontAxleSpeed_Y0;
29852
29853 /* SystemInitialize for Outport: '<S514>/RelativeSpeedFrontAxleLeftWheel' */
29854 L4_MABX_B.SFunction1_o2_ge = L4_MABX_P.RelativeSpeedFrontAxleLeftWheel;
29855
29856 /* SystemInitialize for Outport: '<S514>/RlativeSpeedFrontAxleRightWheel' */
29857 L4_MABX_B.SFunction1_o3_gl = L4_MABX_P.RlativeSpeedFrontAxleRightWheel;
29858
29859 /* SystemInitialize for Outport: '<S514>/RelativeSpeedRearAxle1LeftWheel' */
29860 L4_MABX_B.SFunction1_o4_gu = L4_MABX_P.RelativeSpeedRearAxle1LeftWheel;
29861
29862 /* SystemInitialize for Outport: '<S514>/RlativeSpeedRearAxle1RightWheel' */
29863 L4_MABX_B.SFunction1_o5_dv = L4_MABX_P.RlativeSpeedRearAxle1RightWheel;
29864
29865 /* SystemInitialize for Outport: '<S514>/RelativeSpeedRearAxle2LeftWheel' */
29866 L4_MABX_B.SFunction1_o6_m = L4_MABX_P.RelativeSpeedRearAxle2LeftWheel;
29867
29868 /* SystemInitialize for Outport: '<S514>/RlativeSpeedRearAxle2RightWheel' */
29869 L4_MABX_B.SFunction1_o7_l = L4_MABX_P.RlativeSpeedRearAxle2RightWheel;
29870
29871 /* SystemInitialize for Outport: '<S514>/RX status' */
29872 L4_MABX_B.SFunction1_o8_nz = L4_MABX_P.RXstatus_Y0_db;
29873
29874 /* SystemInitialize for Outport: '<S514>/RX time' */
29875 L4_MABX_B.SFunction1_o9_p2 = L4_MABX_P.RXtime_Y0_es;
29876
29877 /* SystemInitialize for Outport: '<S514>/RX delta time' */
29878 L4_MABX_B.SFunction1_o10_k = L4_MABX_P.RXdeltatime_Y0_j5;
29879
29880 /* End of SystemInitialize for SubSystem: '<S513>/EBC2_0B1' */
29881
29882 /* SystemInitialize for Enabled SubSystem: '<S571>/HRW_0B' */
29883 /* SystemInitialize for Outport: '<S572>/FrontAxleLeftWheelSpeed' */
29884 L4_MABX_B.SFunction1_o1_br = L4_MABX_P.FrontAxleLeftWheelSpeed_Y0;
29885
29886 /* SystemInitialize for Outport: '<S572>/FrontAxleRightWheelSpeed' */
29887 L4_MABX_B.SFunction1_o2_oc = L4_MABX_P.FrontAxleRightWheelSpeed_Y0;
29888
29889 /* SystemInitialize for Outport: '<S572>/RearAxleLeftWheelSpeed' */
29890 L4_MABX_B.SFunction1_o3_ca = L4_MABX_P.RearAxleLeftWheelSpeed_Y0;
29891
29892 /* SystemInitialize for Outport: '<S572>/RearAxleRightWheelSpeed' */
29893 L4_MABX_B.SFunction1_o4_ex = L4_MABX_P.RearAxleRightWheelSpeed_Y0;
29894
29895 /* SystemInitialize for Outport: '<S572>/RX status' */
29896 L4_MABX_B.SFunction1_o5_i1 = L4_MABX_P.RXstatus_Y0_ct;
29897
29898 /* SystemInitialize for Outport: '<S572>/RX time' */
29899 L4_MABX_B.SFunction1_o6_a = L4_MABX_P.RXtime_Y0_ct;
29900
29901 /* SystemInitialize for Outport: '<S572>/RX delta time' */
29902 L4_MABX_B.SFunction1_o7_dc = L4_MABX_P.RXdeltatime_Y0_f;
29903
29904 /* End of SystemInitialize for SubSystem: '<S571>/HRW_0B' */
29905
29906 /* SystemInitialize for Enabled SubSystem: '<S511>/EBC1_0B' */
29907 /* SystemInitialize for Outport: '<S512>/ASREngCtrlActive' */
29908 L4_MABX_B.SFunction1_o1_l2 = L4_MABX_P.ASREngCtrlActive_Y0_o;
29909
29910 /* SystemInitialize for Outport: '<S512>/ASRBrakeCtrlActive' */
29911 L4_MABX_B.SFunction1_o2_cu = L4_MABX_P.ASRBrakeCtrlActive_Y0_k;
29912
29913 /* SystemInitialize for Outport: '<S512>/AntiLockBrakingActive' */
29914 L4_MABX_B.SFunction1_o3_ln = L4_MABX_P.AntiLockBrakingActive_Y0_i;
29915
29916 /* SystemInitialize for Outport: '<S512>/EBSBrakeSwitch' */
29917 L4_MABX_B.SFunction1_o4_ow = L4_MABX_P.EBSBrakeSwitch_Y0_a;
29918
29919 /* SystemInitialize for Outport: '<S512>/BrakePedalPos' */
29920 L4_MABX_B.SFunction1_o5_lu = L4_MABX_P.BrakePedalPos_Y0_p;
29921
29922 /* SystemInitialize for Outport: '<S512>/ABSOffroadSwitch' */
29923 L4_MABX_B.SFunction1_o6_ho = L4_MABX_P.ABSOffroadSwitch_Y0_o;
29924
29925 /* SystemInitialize for Outport: '<S512>/ASROffroadSwitch' */
29926 L4_MABX_B.SFunction1_o7_as = L4_MABX_P.ASROffroadSwitch_Y0_a;
29927
29928 /* SystemInitialize for Outport: '<S512>/ASRHillHolderSwitch' */
29929 L4_MABX_B.SFunction1_o8_f = L4_MABX_P.ASRHillHolderSwitch_Y0_d;
29930
29931 /* SystemInitialize for Outport: '<S512>/TractionCtrlOverrideSwitch' */
29932 L4_MABX_B.SFunction1_o9_o = L4_MABX_P.TractionCtrlOverrideSwitch_Y0_d;
29933
29934 /* SystemInitialize for Outport: '<S512>/AccelInterlockSwitch' */
29935 L4_MABX_B.SFunction1_o10_b = L4_MABX_P.AccelInterlockSwitch_Y0_p;
29936
29937 /* SystemInitialize for Outport: '<S512>/EngDerateSwitch' */
29938 L4_MABX_B.SFunction1_o11_b = L4_MABX_P.EngDerateSwitch_Y0_b;
29939
29940 /* SystemInitialize for Outport: '<S512>/EngAuxShutdownSwitch' */
29941 L4_MABX_B.SFunction1_o12_m = L4_MABX_P.EngAuxShutdownSwitch_Y0_e;
29942
29943 /* SystemInitialize for Outport: '<S512>/RemoteAccelEnableSwitch' */
29944 L4_MABX_B.SFunction1_o13_b = L4_MABX_P.RemoteAccelEnableSwitch_Y0_n;
29945
29946 /* SystemInitialize for Outport: '<S512>/EngRetarderSelection' */
29947 L4_MABX_B.SFunction1_o14_a = L4_MABX_P.EngRetarderSelection_Y0_o;
29948
29949 /* SystemInitialize for Outport: '<S512>/ABSFullyOperational' */
29950 L4_MABX_B.SFunction1_o15_m = L4_MABX_P.ABSFullyOperational_Y0_m;
29951
29952 /* SystemInitialize for Outport: '<S512>/EBSRedWarningSignal' */
29953 L4_MABX_B.SFunction1_o16_l = L4_MABX_P.EBSRedWarningSignal_Y0_a;
29954
29955 /* SystemInitialize for Outport: '<S512>/ABS_EBSAmberWarningSignal' */
29956 L4_MABX_B.SFunction1_o17_g = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0_h;
29957
29958 /* SystemInitialize for Outport: '<S512>/ATC_ASRInformationSignal' */
29959 L4_MABX_B.SFunction1_o18_k = L4_MABX_P.ATC_ASRInformationSignal_Y0_f;
29960
29961 /* SystemInitialize for Outport: '<S512>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
29962 L4_MABX_B.SFunction1_o19_m = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCnt_b;
29963
29964 /* SystemInitialize for Outport: '<S512>/HaltBrakeSwitch' */
29965 L4_MABX_B.SFunction1_o20_o = L4_MABX_P.HaltBrakeSwitch_Y0_f;
29966
29967 /* SystemInitialize for Outport: '<S512>/TrailerABSStatus' */
29968 L4_MABX_B.SFunction1_o21_m = L4_MABX_P.TrailerABSStatus_Y0_o;
29969
29970 /* SystemInitialize for Outport: '<S512>/TrctrMntdTrilerABSWarningSignal' */
29971 L4_MABX_B.SFunction1_o22_m = L4_MABX_P.TrctrMntdTrilerABSWarningSign_g;
29972
29973 /* SystemInitialize for Outport: '<S512>/RX status' */
29974 L4_MABX_B.SFunction1_o23_n = L4_MABX_P.RXstatus_Y0_a0;
29975
29976 /* SystemInitialize for Outport: '<S512>/RX time' */
29977 L4_MABX_B.SFunction1_o24_p = L4_MABX_P.RXtime_Y0_fm;
29978
29979 /* SystemInitialize for Outport: '<S512>/RX delta time' */
29980 L4_MABX_B.SFunction1_o25_f = L4_MABX_P.RXdeltatime_Y0_g;
29981
29982 /* End of SystemInitialize for SubSystem: '<S511>/EBC1_0B' */
29983
29984 /* SystemInitialize for Enabled SubSystem: '<S566>/ETC2_031' */
29985 /* SystemInitialize for Outport: '<S567>/SPN524_TransSelectedGear' */
29986 L4_MABX_B.SFunction1_o1_ewm = L4_MABX_P.SPN524_TransSelectedGear_Y0;
29987
29988 /* SystemInitialize for Outport: '<S567>/SPN526_TransActualGearRatio' */
29989 L4_MABX_B.SFunction1_o2_fs = L4_MABX_P.SPN526_TransActualGearRatio_Y0;
29990
29991 /* SystemInitialize for Outport: '<S567>/SPN523_TransCurrentGear' */
29992 L4_MABX_B.SFunction1_o3_ah3 = L4_MABX_P.SPN523_TransCurrentGear_Y0;
29993
29994 /* SystemInitialize for Outport: '<S567>/RX status' */
29995 L4_MABX_B.SFunction1_o4_o4 = L4_MABX_P.RXstatus_Y0_ol5;
29996
29997 /* SystemInitialize for Outport: '<S567>/RX time' */
29998 L4_MABX_B.SFunction1_o5_e = L4_MABX_P.RXtime_Y0_m0;
29999
30000 /* SystemInitialize for Outport: '<S567>/RX delta time' */
30001 L4_MABX_B.SFunction1_o6_io = L4_MABX_P.RXdeltatime_Y0_be;
30002
30003 /* End of SystemInitialize for SubSystem: '<S566>/ETC2_031' */
30004
30005 /* SystemInitialize for Enabled SubSystem: '<S560>/EEC1_001' */
30006 /* SystemInitialize for Outport: '<S561>/EngTorqueMode' */
30007 L4_MABX_B.SFunction1_o1_jh = L4_MABX_P.EngTorqueMode_Y0;
30008
30009 /* SystemInitialize for Outport: '<S561>/ActlEngPrcntTrqueHighResolution' */
30010 L4_MABX_B.SFunction1_o2_ec = L4_MABX_P.ActlEngPrcntTrqueHighResolution;
30011
30012 /* SystemInitialize for Outport: '<S561>/DriversDemandEngPercentTorque' */
30013 L4_MABX_B.SFunction1_o3_ir = L4_MABX_P.DriversDemandEngPercentTorque_Y;
30014
30015 /* SystemInitialize for Outport: '<S561>/ActualEngPercentTorque' */
30016 L4_MABX_B.SFunction1_o4_ga = L4_MABX_P.ActualEngPercentTorque_Y0;
30017
30018 /* SystemInitialize for Outport: '<S561>/EngSpeed' */
30019 L4_MABX_B.SFunction1_o5_dc = L4_MABX_P.EngSpeed_Y0;
30020
30021 /* SystemInitialize for Outport: '<S561>/SrcAddrssOfCtrllngDvcFrEngCntrl' */
30022 L4_MABX_B.SFunction1_o6_e1 = L4_MABX_P.SrcAddrssOfCtrllngDvcFrEngCntrl;
30023
30024 /* SystemInitialize for Outport: '<S561>/EngStarterMode' */
30025 L4_MABX_B.SFunction1_o7_dh = L4_MABX_P.EngStarterMode_Y0;
30026
30027 /* SystemInitialize for Outport: '<S561>/EngDemandPercentTorque' */
30028 L4_MABX_B.SFunction1_o8_el = L4_MABX_P.EngDemandPercentTorque_Y0;
30029
30030 /* SystemInitialize for Outport: '<S561>/RX status' */
30031 L4_MABX_B.SFunction1_o9_kn = L4_MABX_P.RXstatus_Y0_ns;
30032
30033 /* SystemInitialize for Outport: '<S561>/RX time' */
30034 L4_MABX_B.SFunction1_o10_m4 = L4_MABX_P.RXtime_Y0_j;
30035
30036 /* SystemInitialize for Outport: '<S561>/RX delta time' */
30037 L4_MABX_B.SFunction1_o11_h = L4_MABX_P.RXdeltatime_Y0_jp;
30038
30039 /* End of SystemInitialize for SubSystem: '<S560>/EEC1_001' */
30040
30041 /* SystemInitialize for Enabled SubSystem: '<S564>/EEC3_001' */
30042 /* SystemInitialize for Outport: '<S565>/SPN514_NominalFrictionPercentTorque' */
30043 L4_MABX_B.SFunction1_o1_ixk = L4_MABX_P.SPN514_NominalFrictionPercentTo;
30044
30045 /* SystemInitialize for Outport: '<S565>/SPN2978_EstEngParasiticLossesPercentTorque' */
30046 L4_MABX_B.SFunction1_o2_gf = L4_MABX_P.SPN2978_EstEngParasiticLossesPe;
30047
30048 /* SystemInitialize for Outport: '<S565>/RX status' */
30049 L4_MABX_B.SFunction1_o3_mg = L4_MABX_P.RXstatus_Y0_e;
30050
30051 /* SystemInitialize for Outport: '<S565>/RX time' */
30052 L4_MABX_B.SFunction1_o4_l3 = L4_MABX_P.RXtime_Y0_n;
30053
30054 /* SystemInitialize for Outport: '<S565>/RX delta time' */
30055 L4_MABX_B.SFunction1_o5_dw = L4_MABX_P.RXdeltatime_Y0_k;
30056
30057 /* End of SystemInitialize for SubSystem: '<S564>/EEC3_001' */
30058
30059 /* SystemInitialize for Enabled SubSystem: '<S507>/CVW_0B1' */
30060 /* SystemInitialize for Outport: '<S508>/SPN1760_GrossCombinationVehicleWeight' */
30061 L4_MABX_B.SFunction1_o1_fs = L4_MABX_P.SPN1760_GrossCombinationVehicle;
30062
30063 /* SystemInitialize for Outport: '<S508>/RX status' */
30064 L4_MABX_B.SFunction1_o2_lt = L4_MABX_P.RXstatus_Y0_d;
30065
30066 /* SystemInitialize for Outport: '<S508>/RX time' */
30067 L4_MABX_B.SFunction1_o3_a1 = L4_MABX_P.RXtime_Y0_fw;
30068
30069 /* SystemInitialize for Outport: '<S508>/RX delta time' */
30070 L4_MABX_B.SFunction1_o4_aq = L4_MABX_P.RXdeltatime_Y0_le;
30071
30072 /* End of SystemInitialize for SubSystem: '<S507>/CVW_0B1' */
30073
30074 /* SystemInitialize for Enabled SubSystem: '<S488>/ACC1_2A_' */
30075 /* SystemInitialize for Outport: '<S489>/SpeedOfForwardVehicle' */
30076 L4_MABX_B.SFunction1_o1_o5 = L4_MABX_P.SpeedOfForwardVehicle_Y0;
30077
30078 /* SystemInitialize for Outport: '<S489>/DistanceToForwardVehicle' */
30079 L4_MABX_B.SFunction1_o2_l4 = L4_MABX_P.DistanceToForwardVehicle_Y0;
30080
30081 /* SystemInitialize for Outport: '<S489>/AdaptiveCruiseCtrlSetSpeed' */
30082 L4_MABX_B.SFunction1_o3_lm3 = L4_MABX_P.AdaptiveCruiseCtrlSetSpeed_Y0;
30083
30084 /* SystemInitialize for Outport: '<S489>/AdaptiveCruiseCtrlMode' */
30085 L4_MABX_B.SFunction1_o4_go = L4_MABX_P.AdaptiveCruiseCtrlMode_Y0;
30086
30087 /* SystemInitialize for Outport: '<S489>/AdptveCruiseCtrlSetDistanceMode' */
30088 L4_MABX_B.SFunction1_o5_hv = L4_MABX_P.AdptveCruiseCtrlSetDistanceMode;
30089
30090 /* SystemInitialize for Outport: '<S489>/RoadCurvature' */
30091 L4_MABX_B.SFunction1_o6_p3 = L4_MABX_P.RoadCurvature_Y0;
30092
30093 /* SystemInitialize for Outport: '<S489>/ACCTargetDetected' */
30094 L4_MABX_B.SFunction1_o7_lo = L4_MABX_P.ACCTargetDetected_Y0;
30095
30096 /* SystemInitialize for Outport: '<S489>/ACCSystemShutoffWarning' */
30097 L4_MABX_B.SFunction1_o8_kw = L4_MABX_P.ACCSystemShutoffWarning_Y0;
30098
30099 /* SystemInitialize for Outport: '<S489>/ACCDistanceAlertSignal' */
30100 L4_MABX_B.SFunction1_o9_c = L4_MABX_P.ACCDistanceAlertSignal_Y0;
30101
30102 /* SystemInitialize for Outport: '<S489>/ForwardCollisionWarning' */
30103 L4_MABX_B.SFunction1_o10_nu = L4_MABX_P.ForwardCollisionWarning_Y0;
30104
30105 /* SystemInitialize for Outport: '<S489>/RX status' */
30106 L4_MABX_B.SFunction1_o11_o = L4_MABX_P.RXstatus_Y0_c;
30107
30108 /* SystemInitialize for Outport: '<S489>/RX time' */
30109 L4_MABX_B.SFunction1_o12_h = L4_MABX_P.RXtime_Y0_f;
30110
30111 /* SystemInitialize for Outport: '<S489>/RX delta time' */
30112 L4_MABX_B.SFunction1_o13_ip = L4_MABX_P.RXdeltatime_Y0_l;
30113
30114 /* End of SystemInitialize for SubSystem: '<S488>/ACC1_2A_' */
30115
30116 /* SystemInitialize for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
30117 /* SystemInitialize for Outport: '<S472>/byte1' */
30118 L4_MABX_B.SFunction1_o1_mv = L4_MABX_P.byte1_Y0;
30119
30120 /* SystemInitialize for Outport: '<S472>/byte2' */
30121 L4_MABX_B.SFunction1_o2_ep = L4_MABX_P.byte2_Y0;
30122
30123 /* SystemInitialize for Outport: '<S472>/byte3' */
30124 L4_MABX_B.SFunction1_o3_nh = L4_MABX_P.byte3_Y0;
30125
30126 /* SystemInitialize for Outport: '<S472>/byte4' */
30127 L4_MABX_B.SFunction1_o4_g0 = L4_MABX_P.byte4_Y0;
30128
30129 /* SystemInitialize for Outport: '<S472>/byte5' */
30130 L4_MABX_B.SFunction1_o5_lf = L4_MABX_P.byte5_Y0;
30131
30132 /* SystemInitialize for Outport: '<S472>/byte6' */
30133 L4_MABX_B.SFunction1_o6_l = L4_MABX_P.byte6_Y0;
30134
30135 /* SystemInitialize for Outport: '<S472>/byte7' */
30136 L4_MABX_B.SFunction1_o7_ou = L4_MABX_P.byte7_Y0;
30137
30138 /* SystemInitialize for Outport: '<S472>/byte8' */
30139 L4_MABX_B.SFunction1_o8_lu = L4_MABX_P.byte8_Y0;
30140
30141 /* SystemInitialize for Outport: '<S472>/RX status' */
30142 L4_MABX_B.SFunction1_o9_bh = L4_MABX_P.RXstatus_Y0;
30143
30144 /* SystemInitialize for Outport: '<S472>/RX time' */
30145 L4_MABX_B.SFunction1_o10_mc = L4_MABX_P.RXtime_Y0;
30146
30147 /* SystemInitialize for Outport: '<S472>/RX delta time' */
30148 L4_MABX_B.SFunction1_o11_ow = L4_MABX_P.RXdeltatime_Y0;
30149
30150 /* End of SystemInitialize for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
30151
30152 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_BAM' */
30153 /* SystemInitialize for Outport: '<S682>/Out' */
30154 L4_MABX_B.SPN2556_ControlByte_ix = (uint8_T)L4_MABX_P.Out_Y0_n;
30155 L4_MABX_B.DataType_o5 = (uint16_T)L4_MABX_P.Out_Y0_n;
30156 L4_MABX_B.SPN2568_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_n;
30157 L4_MABX_B.DataType_oo = (uint32_T)L4_MABX_P.Out_Y0_n;
30158
30159 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_BAM' */
30160
30161 /* SystemInitialize for Enabled SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' */
30162 /* SystemInitialize for Outport: '<S481>/byte1' */
30163 L4_MABX_B.SFunction1_o1_dl = L4_MABX_P.byte1_Y0_c;
30164
30165 /* SystemInitialize for Outport: '<S481>/byte2' */
30166 L4_MABX_B.SFunction1_o2_hd = L4_MABX_P.byte2_Y0_h;
30167
30168 /* SystemInitialize for Outport: '<S481>/byte3' */
30169 L4_MABX_B.SFunction1_o3_n5 = L4_MABX_P.byte3_Y0_n;
30170
30171 /* SystemInitialize for Outport: '<S481>/byte4' */
30172 L4_MABX_B.SFunction1_o4_p4 = L4_MABX_P.byte4_Y0_n;
30173
30174 /* SystemInitialize for Outport: '<S481>/byte5' */
30175 L4_MABX_B.SFunction1_o5_mt = L4_MABX_P.byte5_Y0_j;
30176
30177 /* SystemInitialize for Outport: '<S481>/byte6' */
30178 L4_MABX_B.SFunction1_o6_d1 = L4_MABX_P.byte6_Y0_b;
30179
30180 /* SystemInitialize for Outport: '<S481>/byte7' */
30181 L4_MABX_B.SFunction1_o7_dcs = L4_MABX_P.byte7_Y0_k;
30182
30183 /* SystemInitialize for Outport: '<S481>/byte8' */
30184 L4_MABX_B.SFunction1_o8_m = L4_MABX_P.byte8_Y0_c;
30185
30186 /* SystemInitialize for Outport: '<S481>/RX status' */
30187 L4_MABX_B.SFunction1_o9_pl = L4_MABX_P.RXstatus_Y0_i;
30188
30189 /* SystemInitialize for Outport: '<S481>/RX time' */
30190 L4_MABX_B.SFunction1_o10_o = L4_MABX_P.RXtime_Y0_o;
30191
30192 /* SystemInitialize for Outport: '<S481>/RX delta time' */
30193 L4_MABX_B.SFunction1_o11_j = L4_MABX_P.RXdeltatime_Y0_m;
30194
30195 /* End of SystemInitialize for SubSystem: '<S479>/CAN_TYPE1_RX_M1_C1' */
30196
30197 /* SystemInitialize for S-Function (rti_commonblock): '<S823>/S-Function1' incorporates:
30198 * SubSystem: '<S412>/IncrementTimer'
30199 */
30200 L4_MABX_IncrementTimer_Init();
30201
30202 /* End of SystemInitialize for S-Function (rti_commonblock): '<S823>/S-Function1' */
30203
30204 /* SystemInitialize for Enabled SubSystem: '<S431>/CAN_RX_EC1_00' */
30205 /* SystemInitialize for Enabled SubSystem: '<S515>/Decode' */
30206 /* InitializeConditions for UnitDelay: '<S518>/Unit_Delay' */
30207 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_P.Unit_Delay_InitialCondition_pz;
30208 for (i = 0; i < 39; i++) {
30209 /* InitializeConditions for UnitDelay: '<S515>/Unit Delay' */
30210 L4_MABX_DW.UnitDelay_DSTATE_ie[i] =
30211 L4_MABX_P.UnitDelay_InitialCondition_ai[i];
30212
30213 /* SystemInitialize for Outport: '<S518>/RawData' */
30214 L4_MABX_B.Inport_j[i] = L4_MABX_P.RawData_Y0;
30215 }
30216
30217 /* SystemInitialize for Outport: '<S518>/RX_time' */
30218 L4_MABX_B.timeStamp_e = L4_MABX_P.RX_time_Y0;
30219
30220 /* SystemInitialize for Outport: '<S518>/RX_delta_time' */
30221 L4_MABX_B.Subtract_fe = L4_MABX_P.RX_delta_time_Y0;
30222
30223 /* End of SystemInitialize for SubSystem: '<S515>/Decode' */
30224
30225 /* SystemInitialize for Outport: '<S515>/RX_status' */
30226 L4_MABX_B.RX_status_o05 = L4_MABX_P.RX_status_Y0;
30227
30228 /* End of SystemInitialize for SubSystem: '<S431>/CAN_RX_EC1_00' */
30229
30230 /* SystemInitialize for Enabled SubSystem: '<S637>/VDC1_0B_' */
30231 /* SystemInitialize for Outport: '<S638>/VDCInformationSignal' */
30232 L4_MABX_B.SFunction1_o1_exz = L4_MABX_P.VDCInformationSignal_Y0;
30233
30234 /* SystemInitialize for Outport: '<S638>/VDCFullyOperational' */
30235 L4_MABX_B.SFunction1_o2_bv = L4_MABX_P.VDCFullyOperational_Y0;
30236
30237 /* SystemInitialize for Outport: '<S638>/VDCBrakeLightRq' */
30238 L4_MABX_B.SFunction1_o3_eo = L4_MABX_P.VDCBrakeLightRq_Y0;
30239
30240 /* SystemInitialize for Outport: '<S638>/ROPEngCtrlActive' */
30241 L4_MABX_B.SFunction1_o4_e2 = L4_MABX_P.ROPEngCtrlActive_Y0;
30242
30243 /* SystemInitialize for Outport: '<S638>/ROPBrakeCtrlActive' */
30244 L4_MABX_B.SFunction1_o5_g = L4_MABX_P.ROPBrakeCtrlActive_Y0;
30245
30246 /* SystemInitialize for Outport: '<S638>/YCEngCtrlActive' */
30247 L4_MABX_B.SFunction1_o6_c = L4_MABX_P.YCEngCtrlActive_Y0;
30248
30249 /* SystemInitialize for Outport: '<S638>/YCBrakeCtrlActive' */
30250 L4_MABX_B.SFunction1_o7_k = L4_MABX_P.YCBrakeCtrlActive_Y0;
30251
30252 /* SystemInitialize for Outport: '<S638>/RX status' */
30253 L4_MABX_B.SFunction1_o8_p = L4_MABX_P.RXstatus_Y0_b;
30254
30255 /* SystemInitialize for Outport: '<S638>/RX time' */
30256 L4_MABX_B.SFunction1_o9_k = L4_MABX_P.RXtime_Y0_au;
30257
30258 /* SystemInitialize for Outport: '<S638>/RX delta time' */
30259 L4_MABX_B.SFunction1_o10 = L4_MABX_P.RXdeltatime_Y0_n5;
30260
30261 /* End of SystemInitialize for SubSystem: '<S637>/VDC1_0B_' */
30262
30263 /* SystemInitialize for Enabled SubSystem: '<S639>/VDC2_0B1' */
30264 /* SystemInitialize for Outport: '<S640>/SteerWheelAngle' */
30265 SteerWheelAngle = L4_MABX_P.SteerWheelAngle_Y0;
30266
30267 /* SystemInitialize for Outport: '<S640>/SteerWheelTurnCounter' */
30268 L4_MABX_B.SFunction1_o2_jf = L4_MABX_P.SteerWheelTurnCounter_Y0;
30269
30270 /* SystemInitialize for Outport: '<S640>/SteerWheelAngleSensorType' */
30271 L4_MABX_B.SFunction1_o3_eg = L4_MABX_P.SteerWheelAngleSensorType_Y0;
30272
30273 /* SystemInitialize for Outport: '<S640>/YawRate' */
30274 YawRate = L4_MABX_P.YawRate_Y0;
30275
30276 /* SystemInitialize for Outport: '<S640>/LateralAcceleration' */
30277 L4_MABX_B.SFunction1_o5_l = L4_MABX_P.LateralAcceleration_Y0;
30278
30279 /* SystemInitialize for Outport: '<S640>/LongitudinalAcceleration' */
30280 SPN1810_LongitudinalAcceleration = L4_MABX_P.LongitudinalAcceleration_Y0;
30281
30282 /* SystemInitialize for Outport: '<S640>/RX status' */
30283 L4_MABX_B.SFunction1_o7_a = L4_MABX_P.RXstatus_Y0_p2;
30284
30285 /* SystemInitialize for Outport: '<S640>/RX time' */
30286 L4_MABX_B.SFunction1_o8_b = L4_MABX_P.RXtime_Y0_m1;
30287
30288 /* SystemInitialize for Outport: '<S640>/RX delta time' */
30289 L4_MABX_B.SFunction1_o9 = L4_MABX_P.RXdeltatime_Y0_kb;
30290
30291 /* End of SystemInitialize for SubSystem: '<S639>/VDC2_0B1' */
30292
30293 /* SystemInitialize for Enabled SubSystem: '<S454>/CAN_RX_VI_00' */
30294 /* SystemInitialize for Enabled SubSystem: '<S643>/Decode' */
30295 /* InitializeConditions for UnitDelay: '<S646>/Unit_Delay' */
30296 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Unit_Delay_InitialCondition_dt;
30297 for (i = 0; i < 17; i++) {
30298 /* InitializeConditions for UnitDelay: '<S643>/Unit Delay' */
30299 L4_MABX_DW.UnitDelay_DSTATE_e1[i] =
30300 L4_MABX_P.UnitDelay_InitialCondition_mk[i];
30301
30302 /* SystemInitialize for Outport: '<S646>/RawData' */
30303 L4_MABX_B.Inport[i] = L4_MABX_P.RawData_Y0_c;
30304 }
30305
30306 /* SystemInitialize for Outport: '<S646>/RX_time' */
30307 L4_MABX_B.timeStamp = L4_MABX_P.RX_time_Y0_h;
30308
30309 /* SystemInitialize for Outport: '<S646>/RX_delta_time' */
30310 L4_MABX_B.Subtract_ei = L4_MABX_P.RX_delta_time_Y0_h;
30311
30312 /* End of SystemInitialize for SubSystem: '<S643>/Decode' */
30313
30314 /* SystemInitialize for Outport: '<S643>/RX_status' */
30315 L4_MABX_B.RX_status_gz = L4_MABX_P.RX_status_Y0_f;
30316
30317 /* End of SystemInitialize for SubSystem: '<S454>/CAN_RX_VI_00' */
30318
30319 /* SystemInitialize for Enabled SubSystem: '<S625>/SSI2_031' */
30320 /* SystemInitialize for Outport: '<S626>/PitchAngleExRange' */
30321 L4_MABX_B.SFunction1_o1_l0 = L4_MABX_P.PitchAngleExRange_Y0;
30322
30323 /* SystemInitialize for Outport: '<S626>/RollAngleExRange' */
30324 L4_MABX_B.SFunction1_o2_n1 = L4_MABX_P.RollAngleExRange_Y0;
30325
30326 /* SystemInitialize for Outport: '<S626>/PitchAngleExRangeCompensation' */
30327 L4_MABX_B.SFunction1_o3_n = L4_MABX_P.PitchAngleExRangeCompensation_Y;
30328
30329 /* SystemInitialize for Outport: '<S626>/PitchAngleExRangeFigureOfMerit' */
30330 L4_MABX_B.SFunction1_o4_fh = L4_MABX_P.PitchAngleExRangeFigureOfMerit_;
30331
30332 /* SystemInitialize for Outport: '<S626>/RollAngleExRangeCompensation' */
30333 L4_MABX_B.SFunction1_o5_nh = L4_MABX_P.RollAngleExRangeCompensation_Y0;
30334
30335 /* SystemInitialize for Outport: '<S626>/RollAngleExRangeFigureOfMerit' */
30336 L4_MABX_B.SFunction1_o6_b = L4_MABX_P.RollAngleExRangeFigureOfMerit_Y;
30337
30338 /* SystemInitialize for Outport: '<S626>/RllAndPtchExRngMsurementLatency' */
30339 L4_MABX_B.SFunction1_o7_cz = L4_MABX_P.RllAndPtchExRngMsurementLatency;
30340
30341 /* SystemInitialize for Outport: '<S626>/RX status' */
30342 L4_MABX_B.SFunction1_o8_iv = L4_MABX_P.RXstatus_Y0_mz;
30343
30344 /* SystemInitialize for Outport: '<S626>/RX time' */
30345 L4_MABX_B.SFunction1_o9_n = L4_MABX_P.RXtime_Y0_mi;
30346
30347 /* SystemInitialize for Outport: '<S626>/RX delta time' */
30348 L4_MABX_B.SFunction1_o10_d = L4_MABX_P.RXdeltatime_Y0_bt;
30349
30350 /* End of SystemInitialize for SubSystem: '<S625>/SSI2_031' */
30351
30352 /* SystemInitialize for Enabled SubSystem: '<S616>/PX2_LanePosEst' */
30353 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstAngle' */
30354 L4_MABX_B.SFunction1_o1_ae = L4_MABX_P.PX2_LanePosEstAngle_Y0;
30355
30356 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstNumPoints' */
30357 L4_MABX_B.SFunction1_o2_iv = L4_MABX_P.PX2_LanePosEstNumPoints_Y0;
30358
30359 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstPosition' */
30360 L4_MABX_B.SFunction1_o3_lm = L4_MABX_P.PX2_LanePosEstPosition_Y0;
30361
30362 /* SystemInitialize for Outport: '<S619>/PX2_LanePosEstNumLanes' */
30363 L4_MABX_B.SFunction1_o4_gc2 = L4_MABX_P.PX2_LanePosEstNumLanes_Y0;
30364
30365 /* SystemInitialize for Outport: '<S619>/RX status' */
30366 L4_MABX_B.SFunction1_o5_dn = L4_MABX_P.RXstatus_Y0_j1;
30367
30368 /* SystemInitialize for Outport: '<S619>/RX time' */
30369 L4_MABX_B.SFunction1_o6_dd = L4_MABX_P.RXtime_Y0_cs;
30370
30371 /* SystemInitialize for Outport: '<S619>/RX delta time' */
30372 L4_MABX_B.SFunction1_o7_i = L4_MABX_P.RXdeltatime_Y0_br;
30373
30374 /* End of SystemInitialize for SubSystem: '<S616>/PX2_LanePosEst' */
30375
30376 /* SystemInitialize for Enabled SubSystem: '<S623>/Bendix_Prop2C2_Status_30' */
30377 /* SystemInitialize for Outport: '<S624>/PressureP4' */
30378 L4_MABX_B.SFunction1_o1_bx = L4_MABX_P.PressureP4_Y0;
30379
30380 /* SystemInitialize for Outport: '<S624>/PressureP1' */
30381 L4_MABX_B.SFunction1_o2_jr = L4_MABX_P.PressureP1_Y0;
30382
30383 /* SystemInitialize for Outport: '<S624>/PressureP21' */
30384 L4_MABX_B.SFunction1_o3_j1 = L4_MABX_P.PressureP21_Y0;
30385
30386 /* SystemInitialize for Outport: '<S624>/PressureP22' */
30387 L4_MABX_B.SFunction1_o4_ly = L4_MABX_P.PressureP22_Y0;
30388
30389 /* SystemInitialize for Outport: '<S624>/PressureP42' */
30390 L4_MABX_B.SFunction1_o5_dp = L4_MABX_P.PressureP42_Y0;
30391
30392 /* SystemInitialize for Outport: '<S624>/XPR1ControlStatus' */
30393 L4_MABX_B.SFunction1_o6_dv = L4_MABX_P.XPR1ControlStatus_Y0;
30394
30395 /* SystemInitialize for Outport: '<S624>/XPR2ControlStatus' */
30396 L4_MABX_B.SFunction1_o7_k3 = L4_MABX_P.XPR2ControlStatus_Y0;
30397
30398 /* SystemInitialize for Outport: '<S624>/XPR3ControlStatus' */
30399 L4_MABX_B.SFunction1_o8_h = L4_MABX_P.XPR3ControlStatus_Y0;
30400
30401 /* SystemInitialize for Outport: '<S624>/XPRErrorState' */
30402 L4_MABX_B.SFunction1_o9_fu = L4_MABX_P.XPRErrorState_Y0;
30403
30404 /* SystemInitialize for Outport: '<S624>/XPRControlMode' */
30405 L4_MABX_B.SFunction1_o10_n = L4_MABX_P.XPRControlMode_Y0;
30406
30407 /* SystemInitialize for Outport: '<S624>/RX status' */
30408 L4_MABX_B.SFunction1_o11_e = L4_MABX_P.RXstatus_Y0_jz;
30409
30410 /* SystemInitialize for Outport: '<S624>/RX time' */
30411 L4_MABX_B.SFunction1_o12_g = L4_MABX_P.RXtime_Y0_fc;
30412
30413 /* SystemInitialize for Outport: '<S624>/RX delta time' */
30414 L4_MABX_B.SFunction1_o13_d = L4_MABX_P.RXdeltatime_Y0_ps;
30415
30416 /* End of SystemInitialize for SubSystem: '<S623>/Bendix_Prop2C2_Status_30' */
30417
30418 /* SystemInitialize for Enabled SubSystem: '<S573>/PropB_REAX_2_13' */
30419 /* SystemInitialize for Outport: '<S575>/PropB_REAX_2_ActualHandwheelPos' */
30420 L4_MABX_B.SFunction1_o1_a0 = L4_MABX_P.PropB_REAX_2_ActualHandwheelPos;
30421
30422 /* SystemInitialize for Outport: '<S575>/PropB_REAX_2_EchoedStrWhlPos' */
30423 L4_MABX_B.SFunction1_o2_pn = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos_Y0;
30424
30425 /* SystemInitialize for Outport: '<S575>/RX status' */
30426 L4_MABX_B.SFunction1_o3_c15 = L4_MABX_P.RXstatus_Y0_oe;
30427
30428 /* SystemInitialize for Outport: '<S575>/RX time' */
30429 L4_MABX_B.SFunction1_o4_nq = L4_MABX_P.RXtime_Y0_gs;
30430
30431 /* SystemInitialize for Outport: '<S575>/RX delta time' */
30432 L4_MABX_B.SFunction1_o5_b = L4_MABX_P.RXdeltatime_Y0_pn;
30433
30434 /* End of SystemInitialize for SubSystem: '<S573>/PropB_REAX_2_13' */
30435
30436 /* SystemInitialize for Enabled SubSystem: '<S574>/PropB_REAX_2_13' */
30437 /* SystemInitialize for Outport: '<S576>/PropB_REAX_2_ActualHandwheelPos' */
30438 L4_MABX_B.SFunction1_o1_ldo = L4_MABX_P.PropB_REAX_2_ActualHandwheelP_f;
30439
30440 /* SystemInitialize for Outport: '<S576>/PropB_REAX_2_EchoedStrWhlPos' */
30441 L4_MABX_B.SFunction1_o2_al = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos__m;
30442
30443 /* SystemInitialize for Outport: '<S576>/RX status' */
30444 L4_MABX_B.SFunction1_o3_og = L4_MABX_P.RXstatus_Y0_af;
30445
30446 /* SystemInitialize for Outport: '<S576>/RX time' */
30447 L4_MABX_B.SFunction1_o4_cp = L4_MABX_P.RXtime_Y0_fe;
30448
30449 /* SystemInitialize for Outport: '<S576>/RX delta time' */
30450 L4_MABX_B.SFunction1_o5_g1 = L4_MABX_P.RXdeltatime_Y0_ja;
30451
30452 /* End of SystemInitialize for SubSystem: '<S574>/PropB_REAX_2_13' */
30453
30454 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_10ms' */
30455 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
30456 L4_MABX_DW.TmpRTBAtSignalConversion1Inport =
30457 L4_MABX_P.TmpRTBAtSignalConversion1Inport;
30458
30459 /* InitializeConditions for UnitDelay: '<S383>/Unit_Delay' */
30460 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_P.Unit_Delay_InitialCondition_b1;
30461
30462 /* InitializeConditions for UnitDelay: '<S384>/Unit_Delay' */
30463 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Unit_Delay_InitialCondition_g;
30464
30465 /* InitializeConditions for UnitDelay: '<S341>/Unit_Delay' */
30466 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_P.Unit_Delay_InitialCondition_i;
30467
30468 /* InitializeConditions for UnitDelay: '<S388>/FixPt Unit Delay2' */
30469 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a =
30470 L4_MABX_P.FixPtUnitDelay2_InitialCondi_f5;
30471
30472 /* InitializeConditions for UnitDelay: '<S388>/FixPt Unit Delay1' */
30473 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h =
30474 L4_MABX_P.FixPtUnitDelay1_InitialCondit_l;
30475
30476 /* InitializeConditions for UnitDelay: '<S385>/Unit_Delay' */
30477 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_P.Unit_Delay_InitialCondition_hae;
30478
30479 /* InitializeConditions for UnitDelay: '<S372>/Unit_Delay' */
30480 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_P.Unit_Delay_InitialCondition_a;
30481
30482 /* InitializeConditions for UnitDelay: '<S373>/Unit_Delay' */
30483 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Unit_Delay_InitialCondition_gt;
30484
30485 /* InitializeConditions for UnitDelay: '<S339>/Unit_Delay' */
30486 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_P.Unit_Delay_InitialCondition_fb;
30487
30488 /* InitializeConditions for UnitDelay: '<S377>/FixPt Unit Delay2' */
30489 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip =
30490 L4_MABX_P.FixPtUnitDelay2_InitialCondi_po;
30491
30492 /* InitializeConditions for UnitDelay: '<S377>/FixPt Unit Delay1' */
30493 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq =
30494 L4_MABX_P.FixPtUnitDelay1_InitialCondit_d;
30495
30496 /* InitializeConditions for UnitDelay: '<S374>/Unit_Delay' */
30497 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_P.Unit_Delay_InitialCondition_c;
30498
30499 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
30500 L4_MABX_DW.TmpRTBAtSignalConversion3Inport =
30501 L4_MABX_P.TmpRTBAtSignalConversion3Inport;
30502
30503 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
30504 L4_MABX_DW.TmpRTBAtSignalConversion2Inport =
30505 L4_MABX_P.TmpRTBAtSignalConversion2Inport;
30506
30507 /* InitializeConditions for UnitDelay: '<S354>/Unit_Delay' */
30508 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_P.Unit_Delay_InitialCondition_e;
30509
30510 /* InitializeConditions for UnitDelay: '<S356>/Unit_Delay' */
30511 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Unit_Delay_InitialCondition_ml;
30512
30513 /* InitializeConditions for UnitDelay: '<S365>/FixPt Unit Delay2' */
30514 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f =
30515 L4_MABX_P.FixPtUnitDelay2_InitialCondit_i;
30516
30517 /* InitializeConditions for UnitDelay: '<S365>/FixPt Unit Delay1' */
30518 L4_MABX_DW.FixPtUnitDelay1_DSTATE_li =
30519 L4_MABX_P.FixPtUnitDelay1_InitialCondit_h;
30520
30521 /* InitializeConditions for UnitDelay: '<S363>/Unit_Delay' */
30522 L4_MABX_DW.Unit_Delay_DSTATE_ps = L4_MABX_P.Unit_Delay_InitialCondition_j;
30523
30524 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30525 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_P.DetectChange1_vinit;
30526
30527 /* InitializeConditions for UnitDelay: '<S343>/Delay Input1' */
30528 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_P.DetectChange1_vinit_n;
30529
30530 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30531 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_P.DetectChange1_vinit;
30532
30533 /* InitializeConditions for UnitDelay: '<S343>/Delay Input1' */
30534 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_P.DetectChange1_vinit_n;
30535
30536 /* InitializeConditions for UnitDelay: '<S345>/Unit_Delay' */
30537 L4_MABX_DW.Unit_Delay_DSTATE_la = L4_MABX_P.Unit_Delay_InitialCondition_ag;
30538
30539 /* InitializeConditions for UnitDelay: '<S349>/FixPt Unit Delay2' */
30540 L4_MABX_DW.FixPtUnitDelay2_DSTATE_cn =
30541 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ck;
30542
30543 /* InitializeConditions for UnitDelay: '<S349>/FixPt Unit Delay1' */
30544 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e =
30545 L4_MABX_P.FixPtUnitDelay1_InitialCondit_m;
30546
30547 /* InitializeConditions for UnitDelay: '<S344>/Unit_Delay' */
30548 L4_MABX_DW.Unit_Delay_1_DSTATE_j = L4_MABX_P.Unit_Delay_1_InitialCondition;
30549 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_P.Unit_Delay_2_InitialCondition;
30550 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_P.Unit_Delay_3_InitialCondition;
30551
30552 /* InitializeConditions for UnitDelay: '<S342>/Unit_Delay' */
30553 L4_MABX_DW.Unit_Delay_DSTATE_ff = L4_MABX_P.Unit_Delay_InitialCondition_e2;
30554
30555 /* InitializeConditions for UnitDelay: '<S101>/Unit_Delay' */
30556 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Unit_Delay_InitialCondition_ip;
30557
30558 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay1' */
30559 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Unit_Delay1_InitialCondition_f;
30560
30561 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay2' */
30562 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_P.Unit_Delay2_InitialCondition_a;
30563
30564 /* InitializeConditions for UnitDelay: '<S196>/UD' */
30565 L4_MABX_DW.UD_DSTATE = L4_MABX_P.DiscreteDerivative1_ICPrevScale;
30566
30567 /* InitializeConditions for UnitDelay: '<S321>/Unit_Delay1' */
30568 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Unit_Delay1_InitialCondition_m;
30569
30570 /* InitializeConditions for UnitDelay: '<S321>/Unit_Delay2' */
30571 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_P.Unit_Delay2_InitialCondition_g;
30572
30573 /* InitializeConditions for UnitDelay: '<S320>/Delay Input1' */
30574 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_P.DetectChange_vinit;
30575
30576 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay1' */
30577 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Unit_Delay1_InitialCondition_ps;
30578
30579 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay2' */
30580 L4_MABX_DW.Unit_Delay2_DSTATE_im = L4_MABX_P.Unit_Delay2_InitialCondition_ji;
30581
30582 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay1' */
30583 L4_MABX_DW.Unit_Delay1_DSTATE_p3 = L4_MABX_P.Unit_Delay1_InitialCondition_j;
30584
30585 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay2' */
30586 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_P.Unit_Delay2_InitialCondition_ap;
30587
30588 /* InitializeConditions for UnitDelay: '<S279>/Unit Delay' */
30589 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_P.UnitDelay_InitialCondition_c;
30590
30591 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay' */
30592 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_P.UnitDelay_InitialCondition;
30593
30594 /* InitializeConditions for UnitDelay: '<S290>/Unit Delay' */
30595 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_P.UnitDelay_InitialCondition_g;
30596
30597 /* InitializeConditions for UnitDelay: '<S290>/Unit Delay1' */
30598 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_P.UnitDelay1_InitialCondition;
30599
30600 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
30601 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 =
30602 L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
30603
30604 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
30605 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ =
30606 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
30607
30608 /* InitializeConditions for UnitDelay: '<S284>/Unit Delay' */
30609 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_P.UnitDelay_InitialCondition_e;
30610
30611 /* InitializeConditions for RateTransition: '<S278>/TmpRTBAtAdd2Inport2' */
30612 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 =
30613 L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
30614
30615 /* InitializeConditions for UnitDelay: '<S302>/Delay Input2' */
30616 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_P.DelayInput2_InitialCondition;
30617
30618 /* InitializeConditions for DiscreteIntegrator: '<S301>/Integrator' */
30619 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
30620 L4_MABX_DW.Integrator_PrevResetState = 2;
30621
30622 /* InitializeConditions for DiscreteIntegrator: '<S301>/Filter' */
30623 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
30624 L4_MABX_DW.Filter_PrevResetState = 2;
30625
30626 /* InitializeConditions for UnitDelay: '<S305>/Delay Input' */
30627 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevInpu;
30628
30629 /* InitializeConditions for UnitDelay: '<S305>/Delay Output' */
30630 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevOutp;
30631
30632 /* InitializeConditions for UnitDelay: '<S303>/Delay Input2' */
30633 L4_MABX_DW.DelayInput2_DSTATE_a = L4_MABX_P.DelayInput2_InitialCondition_m;
30634
30635 /* InitializeConditions for DiscreteIntegrator: '<S295>/Discrete-Time Integrator' */
30636 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 1U;
30637 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = 2;
30638
30639 /* InitializeConditions for UnitDelay: '<S315>/Delay Input2' */
30640 L4_MABX_DW.DelayInput2_DSTATE_l = L4_MABX_P.DelayInput2_InitialCondition_g;
30641
30642 /* InitializeConditions for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
30643 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
30644 L4_MABX_P.DiscreteTimeIntegrator_IC;
30645 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
30646
30647 /* InitializeConditions for RateLimiter: '<S304>/Limit Rate Limiter' */
30648 L4_MABX_DW.PrevY = L4_MABX_P.LimitRateLimiter_IC;
30649
30650 /* InitializeConditions for UnitDelay: '<S80>/Unit Delay' */
30651 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_P.UnitDelay_InitialCondition_g1;
30652
30653 /* InitializeConditions for UnitDelay: '<S367>/FixPt Unit Delay2' */
30654 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw =
30655 L4_MABX_P.FixPtUnitDelay2_InitialCondit_g;
30656
30657 /* InitializeConditions for UnitDelay: '<S367>/FixPt Unit Delay1' */
30658 L4_MABX_DW.FixPtUnitDelay1_DSTATE_pe =
30659 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dl;
30660
30661 /* InitializeConditions for UnitDelay: '<S368>/FixPt Unit Delay2' */
30662 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g =
30663 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pz;
30664
30665 /* InitializeConditions for UnitDelay: '<S368>/FixPt Unit Delay1' */
30666 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
30667 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ol;
30668
30669 /* InitializeConditions for UnitDelay: '<S362>/Unit_Delay' */
30670 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_P.Unit_Delay_InitialCondition_b;
30671
30672 /* SystemInitialize for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
30673 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
30674 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Unit_Delay1_InitialCondition_o;
30675
30676 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
30677 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
30678
30679 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
30680 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
30681
30682 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
30683 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_a;
30684
30685 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
30686 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
30687
30688 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
30689 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
30690 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
30691
30692 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
30693 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
30694 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
30695
30696 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
30697 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
30698
30699 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
30700 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
30701
30702 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_D_term' */
30703 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_h,
30704 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
30705
30706 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_D_term' */
30707
30708 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_I_term' */
30709 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_n,
30710 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
30711
30712 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_I_term' */
30713
30714 /* SystemInitialize for Outport: '<S206>/PID_output' */
30715 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
30716
30717 /* SystemInitialize for Outport: '<S206>/PID_output_unlim' */
30718 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
30719
30720 /* SystemInitialize for Outport: '<S206>/PID_control_error' */
30721 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
30722
30723 /* SystemInitialize for Outport: '<S206>/PID_p_term' */
30724 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
30725
30726 /* SystemInitialize for Outport: '<S206>/PID_i_term' */
30727 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
30728
30729 /* SystemInitialize for Outport: '<S206>/PID_d_term' */
30730 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
30731
30732 /* SystemInitialize for Outport: '<S206>/PID_hold_i_term_f' */
30733 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
30734
30735 /* End of SystemInitialize for SubSystem: '<S79>/Throttle_controller_gov' */
30736
30737 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30738 /* InitializeConditions for UnitDelay: '<S178>/Unit_Delay' */
30739 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_P.Unit_Delay_InitialCondition_l;
30740
30741 /* InitializeConditions for UnitDelay: '<S188>/Unit_Delay' */
30742 L4_MABX_DW.Unit_Delay_DSTATE_ae = L4_MABX_P.Unit_Delay_InitialCondition_cl;
30743
30744 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay2' */
30745 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l =
30746 L4_MABX_P.FixPtUnitDelay2_InitialCondit_f;
30747
30748 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay1' */
30749 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d =
30750 L4_MABX_P.FixPtUnitDelay1_InitialCondit_j;
30751
30752 /* InitializeConditions for UnitDelay: '<S189>/Unit_Delay' */
30753 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_P.Unit_Delay_InitialCondition_ha;
30754
30755 /* SystemInitialize for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
30756 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
30757
30758 /* SystemInitialize for Outport: '<S178>/F_Shift_interlock_conditions_met' */
30759 L4_MABX_B.F_Shift_interlock_conditions_me =
30760 L4_MABX_P.F_Shift_interlock_conditions_me;
30761
30762 /* End of SystemInitialize for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30763
30764 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30765 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
30766 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
30767
30768 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
30769 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
30770
30771 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
30772 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
30773 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
30774
30775 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
30776 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
30777 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
30778
30779 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
30780 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
30781
30782 /* SystemInitialize for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
30783 L4_MABX_B.If_Then_Else_gj.Switch = L4_MABX_P.Brake_hold_brake_press_target_k;
30784
30785 /* SystemInitialize for Outport: '<S177>/F_Brake_hold_conditions_met' */
30786 L4_MABX_B.F_Brake_hold_conditions_met =
30787 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
30788
30789 /* End of SystemInitialize for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30790
30791 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30792 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
30793 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition;
30794
30795 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
30796 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Unit_Delay_InitialCondition_lt;
30797
30798 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
30799 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
30800
30801 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
30802 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
30803
30804 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
30805 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
30806 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
30807
30808 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
30809 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
30810 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
30811
30812 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
30813 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
30814
30815 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
30816 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
30817
30818 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_D_term' */
30819 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term,
30820 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
30821
30822 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_D_term' */
30823
30824 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_I_term' */
30825 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term,
30826 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
30827
30828 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_I_term' */
30829
30830 /* SystemInitialize for Outport: '<S96>/PID_output' */
30831 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
30832
30833 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30834
30835 /* SystemInitialize for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
30836 L4_MABX_B.TimeVectorRaw[0] = 0.0;
30837 L4_MABX_B.TimeVectorRaw[1] = 0.001;
30838 L4_MABX_B.TimeVectorRaw[2] = 0.002;
30839 L4_MABX_B.TimeVectorRaw[3] = 0.003;
30840 L4_MABX_B.TimeVectorRaw[4] = 0.004;
30841 L4_MABX_B.TimeVectorRaw[5] = 0.005;
30842 L4_MABX_B.PositionVectorRaw[0] = 0.0;
30843 L4_MABX_B.PositionVectorRaw[1] = 0.001;
30844 L4_MABX_B.PositionVectorRaw[2] = 0.002;
30845 L4_MABX_B.PositionVectorRaw[3] = 0.003;
30846 L4_MABX_B.PositionVectorRaw[4] = 0.004;
30847 L4_MABX_B.PositionVectorRaw[5] = 0.005;
30848 for (i = 0; i < 6; i++) {
30849 L4_MABX_B.VelocityVectorRaw[i] = 0.0;
30850 L4_MABX_B.AccelerationVectorRaw[i] = 0.0;
30851 L4_MABX_B.JerkVectorRaw[i] = 0.0;
30852 }
30853
30854 /* End of SystemInitialize for Chart: '<S338>/VehicleSpeedSetpointDynamicCalculation' */
30855
30856 /* SystemInitialize for Chart: '<S338>/TwentyPointVectorCalculation' */
30857 L4_MABX_B.TimeVector[0] = 0.0;
30858 L4_MABX_B.TimeVector[1] = 0.001;
30859 L4_MABX_B.TimeVector[2] = 0.002;
30860 L4_MABX_B.TimeVector[3] = 0.003;
30861 L4_MABX_B.TimeVector[4] = 0.004;
30862 L4_MABX_B.TimeVector[5] = 0.005;
30863 L4_MABX_B.TimeVector[6] = 0.006;
30864 L4_MABX_B.TimeVector[7] = 0.007;
30865 L4_MABX_B.TimeVector[8] = 0.008;
30866 L4_MABX_B.TimeVector[9] = 0.0090000000000000011;
30867 L4_MABX_B.TimeVector[10] = 0.01;
30868 L4_MABX_B.TimeVector[11] = 0.011;
30869 L4_MABX_B.TimeVector[12] = 0.012;
30870 L4_MABX_B.TimeVector[13] = 0.013000000000000001;
30871 L4_MABX_B.TimeVector[14] = 0.014;
30872 L4_MABX_B.TimeVector[15] = 0.015;
30873 L4_MABX_B.TimeVector[16] = 0.016;
30874 L4_MABX_B.TimeVector[17] = 0.017;
30875 L4_MABX_B.TimeVector[18] = 0.018000000000000002;
30876 L4_MABX_B.TimeVector[19] = 0.019;
30877 L4_MABX_B.TimeVector[20] = 0.02;
30878 L4_MABX_B.TimeVector[21] = 0.021;
30879 L4_MABX_B.TimeVector[22] = 0.022;
30880 L4_MABX_B.TimeVector[23] = 0.023;
30881 L4_MABX_B.TimeVector[24] = 0.024;
30882 L4_MABX_B.TimeVector[25] = 0.025;
30883 L4_MABX_B.TimeVector[26] = 0.026000000000000002;
30884 L4_MABX_B.TimeVector[27] = 0.027;
30885 L4_MABX_B.TimeVector[28] = 0.028;
30886 L4_MABX_B.TimeVector[29] = 0.029;
30887 L4_MABX_B.TimeVector[30] = 0.03;
30888 L4_MABX_B.TimeVector[31] = 0.031;
30889 L4_MABX_B.TimeVector[32] = 0.032;
30890 L4_MABX_B.PositionVector[0] = 0.0;
30891 L4_MABX_B.PositionVector[1] = 0.001;
30892 L4_MABX_B.PositionVector[2] = 0.002;
30893 L4_MABX_B.PositionVector[3] = 0.003;
30894 L4_MABX_B.PositionVector[4] = 0.004;
30895 L4_MABX_B.PositionVector[5] = 0.005;
30896 L4_MABX_B.PositionVector[6] = 0.006;
30897 L4_MABX_B.PositionVector[7] = 0.007;
30898 L4_MABX_B.PositionVector[8] = 0.008;
30899 L4_MABX_B.PositionVector[9] = 0.0090000000000000011;
30900 L4_MABX_B.PositionVector[10] = 0.01;
30901 L4_MABX_B.PositionVector[11] = 0.011;
30902 L4_MABX_B.PositionVector[12] = 0.012;
30903 L4_MABX_B.PositionVector[13] = 0.013000000000000001;
30904 L4_MABX_B.PositionVector[14] = 0.014;
30905 L4_MABX_B.PositionVector[15] = 0.015;
30906 L4_MABX_B.PositionVector[16] = 0.016;
30907 L4_MABX_B.PositionVector[17] = 0.017;
30908 L4_MABX_B.PositionVector[18] = 0.018000000000000002;
30909 L4_MABX_B.PositionVector[19] = 0.019;
30910 L4_MABX_B.PositionVector[20] = 0.02;
30911 L4_MABX_B.PositionVector[21] = 0.021;
30912 L4_MABX_B.PositionVector[22] = 0.022;
30913 L4_MABX_B.PositionVector[23] = 0.023;
30914 L4_MABX_B.PositionVector[24] = 0.024;
30915 L4_MABX_B.PositionVector[25] = 0.025;
30916 L4_MABX_B.PositionVector[26] = 0.026000000000000002;
30917 L4_MABX_B.PositionVector[27] = 0.027;
30918 L4_MABX_B.PositionVector[28] = 0.028;
30919 L4_MABX_B.PositionVector[29] = 0.029;
30920 L4_MABX_B.PositionVector[30] = 0.03;
30921 L4_MABX_B.PositionVector[31] = 0.031;
30922 L4_MABX_B.PositionVector[32] = 0.032;
30923 memset(&L4_MABX_B.VelocityVector[0], 0, 33U * sizeof(real_T));
30924 memset(&L4_MABX_B.AccelerationVector[0], 0, 33U * sizeof(real_T));
30925 memset(&L4_MABX_B.JerkVector[0], 0, 33U * sizeof(real_T));
30926
30927 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30928 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
30929 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
30930
30931 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
30932 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_jb;
30933
30934 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
30935 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
30936
30937 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
30938 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
30939
30940 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
30941 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
30942 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
30943
30944 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
30945 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
30946 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
30947
30948 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
30949 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
30950
30951 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
30952 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
30953
30954 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_D_term' */
30955 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_p,
30956 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
30957
30958 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_D_term' */
30959
30960 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_I_term' */
30961 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_e,
30962 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
30963
30964 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_I_term' */
30965
30966 /* SystemInitialize for Outport: '<S97>/PID_output' */
30967 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
30968
30969 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30970
30971 /* SystemInitialize for Chart: '<S79>/Chart' */
30972 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 0U;
30973 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_NO_ACTIVE_CHILD;
30974 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
30975 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
30976
30977 /* SystemInitialize for Enabled SubSystem: '<S79>/Engine_speed_target' */
30978 /* SystemInitialize for Outport: '<S204>/Out1' */
30979 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
30980
30981 /* End of SystemInitialize for SubSystem: '<S79>/Engine_speed_target' */
30982
30983 /* SystemInitialize for Chart: '<S205>/Relay_control_state_machine' */
30984 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30985 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30986 L4_MABX_DW.temporalCounter_i1 = 0U;
30987 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 0U;
30988 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_NO_ACTIVE_CHILD;
30989
30990 /* SystemInitialize for Chart: '<S277>/Chart' */
30991 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 0U;
30992 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_NO_ACTIVE_CHILD;
30993
30994 /* SystemInitialize for Enabled SubSystem: '<S277>/Slew_at_event' */
30995 /* InitializeConditions for UnitDelay: '<S330>/Unit_Delay' */
30996 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
30997
30998 /* InitializeConditions for UnitDelay: '<S331>/Unit_Delay' */
30999 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
31000
31001 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay2' */
31002 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
31003 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
31004
31005 /* InitializeConditions for UnitDelay: '<S334>/FixPt Unit Delay1' */
31006 L4_MABX_DW.FixPtUnitDelay1_DSTATE_ov =
31007 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
31008
31009 /* InitializeConditions for UnitDelay: '<S329>/Unit_Delay' */
31010 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
31011
31012 /* SystemInitialize for Outport: '<S328>/F_Out_slewing' */
31013 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
31014
31015 /* SystemInitialize for Outport: '<S328>/Out' */
31016 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
31017
31018 /* End of SystemInitialize for SubSystem: '<S277>/Slew_at_event' */
31019 /* End of SystemInitialize for SubSystem: '<S65>/Task_10ms' */
31020
31021 /* SystemInitialize for Enabled SubSystem: '<S620>/PosRapidUpdate_011' */
31022 /* SystemInitialize for Outport: '<S621>/Latitude_' */
31023 L4_MABX_B.SFunction1_o1_iy = L4_MABX_P.Latitude_Y0;
31024
31025 /* SystemInitialize for Outport: '<S621>/Longitude_' */
31026 L4_MABX_B.SFunction1_o2_l = L4_MABX_P.Longitude_Y0;
31027
31028 /* SystemInitialize for Outport: '<S621>/RX status' */
31029 L4_MABX_B.SFunction1_o3_p2 = L4_MABX_P.RXstatus_Y0_f;
31030
31031 /* SystemInitialize for Outport: '<S621>/RX time' */
31032 L4_MABX_B.SFunction1_o4_jw = L4_MABX_P.RXtime_Y0_hi;
31033
31034 /* SystemInitialize for Outport: '<S621>/RX delta time' */
31035 L4_MABX_B.SFunction1_o5_c = L4_MABX_P.RXdeltatime_Y0_au;
31036
31037 /* End of SystemInitialize for SubSystem: '<S620>/PosRapidUpdate_011' */
31038
31039 /* SystemInitialize for Enabled SubSystem: '<S620>/PosRapidUpdate_1' */
31040 /* SystemInitialize for Outport: '<S622>/Latitude_' */
31041 L4_MABX_B.SFunction1_o1_a5 = L4_MABX_P.Latitude_Y0_b;
31042
31043 /* SystemInitialize for Outport: '<S622>/Longitude_' */
31044 L4_MABX_B.SFunction1_o2_k4 = L4_MABX_P.Longitude_Y0_p;
31045
31046 /* SystemInitialize for Outport: '<S622>/RX status' */
31047 L4_MABX_B.SFunction1_o3_ah = L4_MABX_P.RXstatus_Y0_pp;
31048
31049 /* SystemInitialize for Outport: '<S622>/RX time' */
31050 L4_MABX_B.SFunction1_o4_l4 = L4_MABX_P.RXtime_Y0_oe;
31051
31052 /* SystemInitialize for Outport: '<S622>/RX delta time' */
31053 L4_MABX_B.SFunction1_o5_ic = L4_MABX_P.RXdeltatime_Y0_hp;
31054
31055 /* End of SystemInitialize for SubSystem: '<S620>/PosRapidUpdate_1' */
31056
31057 /* SystemInitialize for Enabled SubSystem: '<S500>/CCVS1_00' */
31058 /* SystemInitialize for Outport: '<S501>/TwoSpeedAxleSwitch' */
31059 L4_MABX_B.SFunction1_o1_mf = L4_MABX_P.TwoSpeedAxleSwitch_Y0;
31060
31061 /* SystemInitialize for Outport: '<S501>/ParkingBrakeSwitch' */
31062 L4_MABX_B.SFunction1_o2_j0 = L4_MABX_P.ParkingBrakeSwitch_Y0;
31063
31064 /* SystemInitialize for Outport: '<S501>/CruiseCtrlPauseSwitch' */
31065 L4_MABX_B.SFunction1_o3_ko = L4_MABX_P.CruiseCtrlPauseSwitch_Y0;
31066
31067 /* SystemInitialize for Outport: '<S501>/ParkBrakeReleaseInhibitRq' */
31068 L4_MABX_B.SFunction1_o4_np = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0;
31069
31070 /* SystemInitialize for Outport: '<S501>/WheelBasedVehicleSpeed' */
31071 WheelBasedVehicleSpeed = L4_MABX_P.WheelBasedVehicleSpeed_Y0;
31072
31073 /* SystemInitialize for Outport: '<S501>/CruiseCtrlActive' */
31074 L4_MABX_B.SFunction1_o6_j = L4_MABX_P.CruiseCtrlActive_Y0;
31075
31076 /* SystemInitialize for Outport: '<S501>/CruiseCtrlEnableSwitch' */
31077 L4_MABX_B.SFunction1_o7_m = L4_MABX_P.CruiseCtrlEnableSwitch_Y0;
31078
31079 /* SystemInitialize for Outport: '<S501>/BrakeSwitch' */
31080 BrakeSwitch = L4_MABX_P.BrakeSwitch_Y0;
31081
31082 /* SystemInitialize for Outport: '<S501>/ClutchSwitch' */
31083 L4_MABX_B.SFunction1_o9_oo = L4_MABX_P.ClutchSwitch_Y0;
31084
31085 /* SystemInitialize for Outport: '<S501>/CruiseCtrlSetSwitch' */
31086 L4_MABX_B.SFunction1_o10_am = L4_MABX_P.CruiseCtrlSetSwitch_Y0;
31087
31088 /* SystemInitialize for Outport: '<S501>/CruiseCtrlCoastSwitch' */
31089 L4_MABX_B.SFunction1_o11_g = L4_MABX_P.CruiseCtrlCoastSwitch_Y0;
31090
31091 /* SystemInitialize for Outport: '<S501>/CruiseCtrlResumeSwitch' */
31092 L4_MABX_B.SFunction1_o12_l = L4_MABX_P.CruiseCtrlResumeSwitch_Y0;
31093
31094 /* SystemInitialize for Outport: '<S501>/CruiseCtrlAccelerateSwitch' */
31095 L4_MABX_B.SFunction1_o13_dw = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0;
31096
31097 /* SystemInitialize for Outport: '<S501>/CruiseCtrlSetSpeed' */
31098 L4_MABX_B.SFunction1_o14_e = L4_MABX_P.CruiseCtrlSetSpeed_Y0;
31099
31100 /* SystemInitialize for Outport: '<S501>/PTOGovernorState' */
31101 L4_MABX_B.SFunction1_o15_b = L4_MABX_P.PTOGovernorState_Y0;
31102
31103 /* SystemInitialize for Outport: '<S501>/CruiseCtrlStates' */
31104 L4_MABX_B.SFunction1_o16_g = L4_MABX_P.CruiseCtrlStates_Y0;
31105
31106 /* SystemInitialize for Outport: '<S501>/EngIdleIncrementSwitch' */
31107 L4_MABX_B.SFunction1_o17_c = L4_MABX_P.EngIdleIncrementSwitch_Y0;
31108
31109 /* SystemInitialize for Outport: '<S501>/EngIdleDecrementSwitch' */
31110 L4_MABX_B.SFunction1_o18_e = L4_MABX_P.EngIdleDecrementSwitch_Y0;
31111
31112 /* SystemInitialize for Outport: '<S501>/EngTestModeSwitch' */
31113 L4_MABX_B.SFunction1_o19_g = L4_MABX_P.EngTestModeSwitch_Y0;
31114
31115 /* SystemInitialize for Outport: '<S501>/EngShutdownOverrideSwitch' */
31116 L4_MABX_B.SFunction1_o20_eq = L4_MABX_P.EngShutdownOverrideSwitch_Y0;
31117
31118 /* SystemInitialize for Outport: '<S501>/RX status' */
31119 L4_MABX_B.SFunction1_o21_j = L4_MABX_P.RXstatus_Y0_a;
31120
31121 /* SystemInitialize for Outport: '<S501>/RX time' */
31122 L4_MABX_B.SFunction1_o22_g = L4_MABX_P.RXtime_Y0_ef;
31123
31124 /* SystemInitialize for Outport: '<S501>/RX delta time' */
31125 L4_MABX_B.SFunction1_o23_d = L4_MABX_P.RXdeltatime_Y0_h;
31126
31127 /* End of SystemInitialize for SubSystem: '<S500>/CCVS1_00' */
31128
31129 /* SystemInitialize for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_00' */
31130 /* SystemInitialize for Outport: '<S505>/SID' */
31131 L4_MABX_B.SFunction1_o1_jp = L4_MABX_P.SID_Y0;
31132
31133 /* SystemInitialize for Outport: '<S505>/COGReference' */
31134 L4_MABX_B.SFunction1_o2_kj = L4_MABX_P.COGReference_Y0;
31135
31136 /* SystemInitialize for Outport: '<S505>/CourseOverGround' */
31137 L4_MABX_B.SFunction1_o3_ad = L4_MABX_P.CourseOverGround_Y0;
31138
31139 /* SystemInitialize for Outport: '<S505>/SpeedOverGround' */
31140 L4_MABX_B.SFunction1_o4_fm = L4_MABX_P.SpeedOverGround_Y0;
31141
31142 /* SystemInitialize for Outport: '<S505>/RX status' */
31143 L4_MABX_B.SFunction1_o5_a = L4_MABX_P.RXstatus_Y0_ol;
31144
31145 /* SystemInitialize for Outport: '<S505>/RX time' */
31146 L4_MABX_B.SFunction1_o6_m0 = L4_MABX_P.RXtime_Y0_d;
31147
31148 /* SystemInitialize for Outport: '<S505>/RX delta time' */
31149 L4_MABX_B.SFunction1_o7_dv = L4_MABX_P.RXdeltatime_Y0_iv;
31150
31151 /* End of SystemInitialize for SubSystem: '<S504>/COGSOGRapidUpdate_00' */
31152
31153 /* SystemInitialize for Enabled SubSystem: '<S504>/COGSOGRapidUpdate_1' */
31154 /* SystemInitialize for Outport: '<S506>/SID' */
31155 L4_MABX_B.SFunction1_o1_n2 = L4_MABX_P.SID_Y0_i;
31156
31157 /* SystemInitialize for Outport: '<S506>/COGReference' */
31158 L4_MABX_B.SFunction1_o2_fc = L4_MABX_P.COGReference_Y0_j;
31159
31160 /* SystemInitialize for Outport: '<S506>/CourseOverGround' */
31161 L4_MABX_B.SFunction1_o3_o1 = L4_MABX_P.CourseOverGround_Y0_l;
31162
31163 /* SystemInitialize for Outport: '<S506>/SpeedOverGround' */
31164 L4_MABX_B.SFunction1_o4_kn = L4_MABX_P.SpeedOverGround_Y0_a;
31165
31166 /* SystemInitialize for Outport: '<S506>/RX status' */
31167 L4_MABX_B.SFunction1_o5_jr = L4_MABX_P.RXstatus_Y0_l;
31168
31169 /* SystemInitialize for Outport: '<S506>/RX time' */
31170 L4_MABX_B.SFunction1_o6_h2 = L4_MABX_P.RXtime_Y0_ms;
31171
31172 /* SystemInitialize for Outport: '<S506>/RX delta time' */
31173 L4_MABX_B.SFunction1_o7_ka = L4_MABX_P.RXdeltatime_Y0_d5;
31174
31175 /* End of SystemInitialize for SubSystem: '<S504>/COGSOGRapidUpdate_1' */
31176
31177 /* SystemInitialize for Atomic SubSystem: '<S824>/CAN_TX_100ms' */
31178 /* SystemInitialize for Enabled SubSystem: '<S861>/Rolling_15_counter' */
31179 /* InitializeConditions for UnitDelay: '<S903>/Unit_Delay' */
31180 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_P.Unit_Delay_InitialCondition_bo;
31181
31182 /* SystemInitialize for Outport: '<S903>/Rolling_15_counter' */
31183 L4_MABX_B.Unit_Delay = L4_MABX_P.Rolling_15_counter_Y0;
31184
31185 /* End of SystemInitialize for SubSystem: '<S861>/Rolling_15_counter' */
31186
31187 /* SystemInitialize for Enabled SubSystem: '<S883>/PropB_XPR_FC' */
31188 /* SystemInitialize for Outport: '<S885>/TX status' */
31189 L4_MABX_B.SFunction1_o1_g = L4_MABX_P.TXstatus_Y0_j;
31190
31191 /* SystemInitialize for Outport: '<S885>/TX time' */
31192 L4_MABX_B.SFunction1_o2_ee = L4_MABX_P.TXtime_Y0_a0;
31193
31194 /* SystemInitialize for Outport: '<S885>/TX delta time' */
31195 L4_MABX_B.SFunction1_o3_cv = L4_MABX_P.TXdeltatime_Y0_gk;
31196
31197 /* SystemInitialize for Outport: '<S885>/TX delay time' */
31198 L4_MABX_B.SFunction1_o4_ca = L4_MABX_P.TXdelaytime_Y0_m;
31199
31200 /* End of SystemInitialize for SubSystem: '<S883>/PropB_XPR_FC' */
31201
31202 /* SystemInitialize for Enabled SubSystem: '<S884>/PropB_XPR_FC' */
31203 /* SystemInitialize for Outport: '<S886>/TX status' */
31204 L4_MABX_B.SFunction1_o1_hk = L4_MABX_P.TXstatus_Y0_n;
31205
31206 /* SystemInitialize for Outport: '<S886>/TX time' */
31207 L4_MABX_B.SFunction1_o2_k = L4_MABX_P.TXtime_Y0_pb;
31208
31209 /* SystemInitialize for Outport: '<S886>/TX delta time' */
31210 L4_MABX_B.SFunction1_o3_bz = L4_MABX_P.TXdeltatime_Y0_l2;
31211
31212 /* SystemInitialize for Outport: '<S886>/TX delay time' */
31213 L4_MABX_B.SFunction1_o4_lf = L4_MABX_P.TXdelaytime_Y0_o;
31214
31215 /* End of SystemInitialize for SubSystem: '<S884>/PropB_XPR_FC' */
31216
31217 /* SystemInitialize for Enabled SubSystem: '<S913>/Std_PosRapidUpdate_01' */
31218 /* SystemInitialize for Outport: '<S914>/TX status' */
31219 L4_MABX_B.SFunction1_o1_m = L4_MABX_P.TXstatus_Y0_h;
31220
31221 /* SystemInitialize for Outport: '<S914>/TX time' */
31222 L4_MABX_B.SFunction1_o2_e = L4_MABX_P.TXtime_Y0_i2;
31223
31224 /* SystemInitialize for Outport: '<S914>/TX delta time' */
31225 L4_MABX_B.SFunction1_o3_a = L4_MABX_P.TXdeltatime_Y0_cw;
31226
31227 /* SystemInitialize for Outport: '<S914>/TX delay time' */
31228 L4_MABX_B.SFunction1_o4_f = L4_MABX_P.TXdelaytime_Y0_h;
31229
31230 /* End of SystemInitialize for SubSystem: '<S913>/Std_PosRapidUpdate_01' */
31231
31232 /* SystemInitialize for Enabled SubSystem: '<S863>/CCVS1_00' */
31233 /* SystemInitialize for Outport: '<S865>/TX status' */
31234 L4_MABX_B.SFunction1_o1_ns = L4_MABX_P.TXstatus_Y0_d;
31235
31236 /* SystemInitialize for Outport: '<S865>/TX time' */
31237 L4_MABX_B.SFunction1_o2_c4 = L4_MABX_P.TXtime_Y0_p;
31238
31239 /* SystemInitialize for Outport: '<S865>/TX delta time' */
31240 L4_MABX_B.SFunction1_o3_ov = L4_MABX_P.TXdeltatime_Y0_l;
31241
31242 /* SystemInitialize for Outport: '<S865>/TX delay time' */
31243 L4_MABX_B.SFunction1_o4_bc = L4_MABX_P.TXdelaytime_Y0_n;
31244
31245 /* End of SystemInitialize for SubSystem: '<S863>/CCVS1_00' */
31246
31247 /* SystemInitialize for Enabled SubSystem: '<S864>/CCVS1_00' */
31248 /* SystemInitialize for Outport: '<S866>/TX status' */
31249 L4_MABX_B.SFunction1_o1_ne = L4_MABX_P.TXstatus_Y0_b;
31250
31251 /* SystemInitialize for Outport: '<S866>/TX time' */
31252 L4_MABX_B.SFunction1_o2_ix = L4_MABX_P.TXtime_Y0_h;
31253
31254 /* SystemInitialize for Outport: '<S866>/TX delta time' */
31255 L4_MABX_B.SFunction1_o3_c1 = L4_MABX_P.TXdeltatime_Y0_g;
31256
31257 /* SystemInitialize for Outport: '<S866>/TX delay time' */
31258 L4_MABX_B.SFunction1_o4_p = L4_MABX_P.TXdelaytime_Y0_j;
31259
31260 /* End of SystemInitialize for SubSystem: '<S864>/CCVS1_00' */
31261
31262 /* SystemInitialize for Enabled SubSystem: '<S867>/PropB_REAX_5_E4' */
31263 /* SystemInitialize for Outport: '<S869>/TX status' */
31264 L4_MABX_B.SFunction1_o1_cl = L4_MABX_P.TXstatus_Y0_c;
31265
31266 /* SystemInitialize for Outport: '<S869>/TX time' */
31267 L4_MABX_B.SFunction1_o2_ds = L4_MABX_P.TXtime_Y0_a;
31268
31269 /* SystemInitialize for Outport: '<S869>/TX delta time' */
31270 L4_MABX_B.SFunction1_o3_h = L4_MABX_P.TXdeltatime_Y0_l1;
31271
31272 /* SystemInitialize for Outport: '<S869>/TX delay time' */
31273 L4_MABX_B.SFunction1_o4_mj = L4_MABX_P.TXdelaytime_Y0_p;
31274
31275 /* End of SystemInitialize for SubSystem: '<S867>/PropB_REAX_5_E4' */
31276
31277 /* SystemInitialize for Enabled SubSystem: '<S868>/PropB_REAX_5_E4' */
31278 /* SystemInitialize for Outport: '<S870>/TX status' */
31279 L4_MABX_B.SFunction1_o1_p = L4_MABX_P.TXstatus_Y0_ck;
31280
31281 /* SystemInitialize for Outport: '<S870>/TX time' */
31282 L4_MABX_B.SFunction1_o2_c1 = L4_MABX_P.TXtime_Y0_c;
31283
31284 /* SystemInitialize for Outport: '<S870>/TX delta time' */
31285 L4_MABX_B.SFunction1_o3_j = L4_MABX_P.TXdeltatime_Y0_f;
31286
31287 /* SystemInitialize for Outport: '<S870>/TX delay time' */
31288 L4_MABX_B.SFunction1_o4_gc = L4_MABX_P.TXdelaytime_Y0_p0;
31289
31290 /* End of SystemInitialize for SubSystem: '<S868>/PropB_REAX_5_E4' */
31291
31292 /* SystemInitialize for Enabled SubSystem: '<S887>/Std_COGSOGRapidUpdate_01' */
31293 /* SystemInitialize for Outport: '<S888>/TX status' */
31294 L4_MABX_B.SFunction1_o1_hp = L4_MABX_P.TXstatus_Y0_do;
31295
31296 /* SystemInitialize for Outport: '<S888>/TX time' */
31297 L4_MABX_B.SFunction1_o2_iq = L4_MABX_P.TXtime_Y0_fc;
31298
31299 /* SystemInitialize for Outport: '<S888>/TX delta time' */
31300 L4_MABX_B.SFunction1_o3_b = L4_MABX_P.TXdeltatime_Y0_k;
31301
31302 /* SystemInitialize for Outport: '<S888>/TX delay time' */
31303 L4_MABX_B.SFunction1_o4_g = L4_MABX_P.TXdelaytime_Y0_mp;
31304
31305 /* End of SystemInitialize for SubSystem: '<S887>/Std_COGSOGRapidUpdate_01' */
31306
31307 /* SystemInitialize for Enabled SubSystem: '<S889>/EBC1_TX' */
31308 /* SystemInitialize for Outport: '<S890>/TX status' */
31309 L4_MABX_B.SFunction1_o1_oh = L4_MABX_P.TXstatus_Y0_g;
31310
31311 /* SystemInitialize for Outport: '<S890>/TX time' */
31312 L4_MABX_B.SFunction1_o2_oa = L4_MABX_P.TXtime_Y0_i;
31313
31314 /* SystemInitialize for Outport: '<S890>/TX delta time' */
31315 L4_MABX_B.SFunction1_o3_kw = L4_MABX_P.TXdeltatime_Y0_c;
31316
31317 /* SystemInitialize for Outport: '<S890>/TX delay time' */
31318 L4_MABX_B.SFunction1_o4_b = L4_MABX_P.TXdelaytime_Y0_c;
31319
31320 /* End of SystemInitialize for SubSystem: '<S889>/EBC1_TX' */
31321 /* End of SystemInitialize for SubSystem: '<S824>/CAN_TX_100ms' */
31322
31323 /* SystemInitialize for Atomic SubSystem: '<S824>/CAN_TX_10ms' */
31324 /* InitializeConditions for UnitDelay: '<S981>/Unit_Delay' */
31325 L4_MABX_DW.Unit_Delay_DSTATE_ep = L4_MABX_P.Unit_Delay_InitialCondition_bw;
31326
31327 /* InitializeConditions for UnitDelay: '<S982>/Unit Delay' */
31328 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_P.UnitDelay_InitialCondition_a;
31329
31330 /* SystemInitialize for Enabled SubSystem: '<S926>/ACCS' */
31331 /* SystemInitialize for Outport: '<S927>/TX status' */
31332 L4_MABX_B.SFunction1_o1_ex = L4_MABX_P.TXstatus_Y0_cr;
31333
31334 /* SystemInitialize for Outport: '<S927>/TX time' */
31335 L4_MABX_B.SFunction1_o2_ou = L4_MABX_P.TXtime_Y0_j;
31336
31337 /* SystemInitialize for Outport: '<S927>/TX delta time' */
31338 L4_MABX_B.SFunction1_o3_ky = L4_MABX_P.TXdeltatime_Y0_p;
31339
31340 /* SystemInitialize for Outport: '<S927>/TX delay time' */
31341 L4_MABX_B.SFunction1_o4_km = L4_MABX_P.TXdelaytime_Y0_b;
31342
31343 /* End of SystemInitialize for SubSystem: '<S926>/ACCS' */
31344
31345 /* SystemInitialize for Enabled SubSystem: '<S934>/EEC1_00' */
31346 /* SystemInitialize for Outport: '<S936>/TX status' */
31347 L4_MABX_B.SFunction1_o1_hh = L4_MABX_P.TXstatus_Y0_jk;
31348
31349 /* SystemInitialize for Outport: '<S936>/TX time' */
31350 L4_MABX_B.SFunction1_o2_p = L4_MABX_P.TXtime_Y0_g;
31351
31352 /* SystemInitialize for Outport: '<S936>/TX delta time' */
31353 L4_MABX_B.SFunction1_o3_m = L4_MABX_P.TXdeltatime_Y0_i;
31354
31355 /* SystemInitialize for Outport: '<S936>/TX delay time' */
31356 L4_MABX_B.SFunction1_o4_h = L4_MABX_P.TXdelaytime_Y0_hx;
31357
31358 /* End of SystemInitialize for SubSystem: '<S934>/EEC1_00' */
31359
31360 /* SystemInitialize for Enabled SubSystem: '<S935>/EEC1_00' */
31361 /* SystemInitialize for Outport: '<S937>/TX status' */
31362 L4_MABX_B.SFunction1_o1_n = L4_MABX_P.TXstatus_Y0_m;
31363
31364 /* SystemInitialize for Outport: '<S937>/TX time' */
31365 L4_MABX_B.SFunction1_o2_b = L4_MABX_P.TXtime_Y0_fh;
31366
31367 /* SystemInitialize for Outport: '<S937>/TX delta time' */
31368 L4_MABX_B.SFunction1_o3_cb = L4_MABX_P.TXdeltatime_Y0_o;
31369
31370 /* SystemInitialize for Outport: '<S937>/TX delay time' */
31371 L4_MABX_B.SFunction1_o4_lb = L4_MABX_P.TXdelaytime_Y0_i;
31372
31373 /* End of SystemInitialize for SubSystem: '<S935>/EEC1_00' */
31374
31375 /* SystemInitialize for Merge: '<S952>/Merge' */
31376 L4_MABX_B.Merge = L4_MABX_P.Merge_InitialOutput;
31377
31378 /* SystemInitialize for Enabled SubSystem: '<S938>/PropB_REAX_1_E4' */
31379 /* SystemInitialize for Outport: '<S940>/TX status' */
31380 L4_MABX_B.SFunction1_o1_f1 = L4_MABX_P.TXstatus_Y0_dl;
31381
31382 /* SystemInitialize for Outport: '<S940>/TX time' */
31383 L4_MABX_B.SFunction1_o2_m = L4_MABX_P.TXtime_Y0_c1;
31384
31385 /* SystemInitialize for Outport: '<S940>/TX delta time' */
31386 L4_MABX_B.SFunction1_o3_dp = L4_MABX_P.TXdeltatime_Y0_lj;
31387
31388 /* SystemInitialize for Outport: '<S940>/TX delay time' */
31389 L4_MABX_B.SFunction1_o4_ej = L4_MABX_P.TXdelaytime_Y0_e;
31390
31391 /* End of SystemInitialize for SubSystem: '<S938>/PropB_REAX_1_E4' */
31392
31393 /* SystemInitialize for Enabled SubSystem: '<S939>/PropB_REAX_1_E4' */
31394 /* SystemInitialize for Outport: '<S941>/TX status' */
31395 L4_MABX_B.SFunction1_o1_i = L4_MABX_P.TXstatus_Y0_f;
31396
31397 /* SystemInitialize for Outport: '<S941>/TX time' */
31398 L4_MABX_B.SFunction1_o2_h = L4_MABX_P.TXtime_Y0_gc;
31399
31400 /* SystemInitialize for Outport: '<S941>/TX delta time' */
31401 L4_MABX_B.SFunction1_o3_f = L4_MABX_P.TXdeltatime_Y0_cg;
31402
31403 /* SystemInitialize for Outport: '<S941>/TX delay time' */
31404 L4_MABX_B.SFunction1_o4_lg = L4_MABX_P.TXdelaytime_Y0_ii;
31405
31406 /* End of SystemInitialize for SubSystem: '<S939>/PropB_REAX_1_E4' */
31407
31408 /* SystemInitialize for Enabled SubSystem: '<S948>/VDC2_0B' */
31409 /* SystemInitialize for Outport: '<S949>/TX status' */
31410 L4_MABX_B.SFunction1_o1_ep = L4_MABX_P.TXstatus_Y0_b5;
31411
31412 /* SystemInitialize for Outport: '<S949>/TX time' */
31413 L4_MABX_B.SFunction1_o2_ir = L4_MABX_P.TXtime_Y0_ac;
31414
31415 /* SystemInitialize for Outport: '<S949>/TX delta time' */
31416 L4_MABX_B.SFunction1_o3_o = L4_MABX_P.TXdeltatime_Y0_c2;
31417
31418 /* SystemInitialize for Outport: '<S949>/TX delay time' */
31419 L4_MABX_B.SFunction1_o4_nj = L4_MABX_P.TXdelaytime_Y0_g;
31420
31421 /* End of SystemInitialize for SubSystem: '<S948>/VDC2_0B' */
31422 /* End of SystemInitialize for SubSystem: '<S824>/CAN_TX_10ms' */
31423
31424 /* SystemInitialize for Atomic SubSystem: '<S824>/CAN_TX_20ms' */
31425 /* InitializeConditions for UnitDelay: '<S986>/Unit_Delay' */
31426 L4_MABX_DW.Unit_Delay_DSTATE_f2 = L4_MABX_P.Unit_Delay_InitialCondition_d2;
31427
31428 /* InitializeConditions for UnitDelay: '<S1009>/Unit_Delay' */
31429 L4_MABX_DW.Unit_Delay_DSTATE_pd = L4_MABX_P.Unit_Delay_InitialCondition_jf;
31430
31431 /* InitializeConditions for UnitDelay: '<S1010>/Unit Delay' */
31432 L4_MABX_DW.UnitDelay_DSTATE_is = L4_MABX_P.UnitDelay_InitialCondition_nl;
31433
31434 /* SystemInitialize for Enabled SubSystem: '<S993>/PropB_XBR_B3' */
31435 /* SystemInitialize for Outport: '<S994>/TX status' */
31436 L4_MABX_B.SFunction1_o1_bu = L4_MABX_P.TXstatus_Y0_n4;
31437
31438 /* SystemInitialize for Outport: '<S994>/TX time' */
31439 L4_MABX_B.SFunction1_o2_ak = L4_MABX_P.TXtime_Y0_hz;
31440
31441 /* SystemInitialize for Outport: '<S994>/TX delta time' */
31442 L4_MABX_B.SFunction1_o3_d = L4_MABX_P.TXdeltatime_Y0_a;
31443
31444 /* SystemInitialize for Outport: '<S994>/TX delay time' */
31445 L4_MABX_B.SFunction1_o4_j = L4_MABX_P.TXdelaytime_Y0_bg;
31446
31447 /* End of SystemInitialize for SubSystem: '<S993>/PropB_XBR_B3' */
31448
31449 /* SystemInitialize for Enabled SubSystem: '<S995>/PropB_Bendix_2C2_XPR' */
31450 /* SystemInitialize for Outport: '<S996>/TX status' */
31451 L4_MABX_B.SFunction1_o1_o = L4_MABX_P.TXstatus_Y0_hn;
31452
31453 /* SystemInitialize for Outport: '<S996>/TX time' */
31454 L4_MABX_B.SFunction1_o2_o4 = L4_MABX_P.TXtime_Y0_k;
31455
31456 /* SystemInitialize for Outport: '<S996>/TX delta time' */
31457 L4_MABX_B.SFunction1_o3_c3 = L4_MABX_P.TXdeltatime_Y0_ix;
31458
31459 /* SystemInitialize for Outport: '<S996>/TX delay time' */
31460 L4_MABX_B.SFunction1_o4_l = L4_MABX_P.TXdelaytime_Y0_k;
31461
31462 /* End of SystemInitialize for SubSystem: '<S995>/PropB_Bendix_2C2_XPR' */
31463
31464 /* SystemInitialize for Enabled SubSystem: '<S1003>/Std_OdometryData' */
31465 /* SystemInitialize for Outport: '<S1004>/TX status' */
31466 L4_MABX_B.SFunction1_o1_fy = L4_MABX_P.TXstatus_Y0_jm;
31467
31468 /* SystemInitialize for Outport: '<S1004>/TX time' */
31469 L4_MABX_B.SFunction1_o2_d = L4_MABX_P.TXtime_Y0_n;
31470
31471 /* SystemInitialize for Outport: '<S1004>/TX delta time' */
31472 L4_MABX_B.SFunction1_o3_c = L4_MABX_P.TXdeltatime_Y0_j;
31473
31474 /* SystemInitialize for Outport: '<S1004>/TX delay time' */
31475 L4_MABX_B.SFunction1_o4_c = L4_MABX_P.TXdelaytime_Y0_co;
31476
31477 /* End of SystemInitialize for SubSystem: '<S1003>/Std_OdometryData' */
31478 /* End of SystemInitialize for SubSystem: '<S824>/CAN_TX_20ms' */
31479
31480 /* SystemInitialize for Atomic SubSystem: '<S824>/CAN_TX_5000ms' */
31481 /* InitializeConditions for UnitDelay: '<S1024>/Unit_Delay' */
31482 L4_MABX_DW.Unit_Delay_DSTATE_jp = L4_MABX_P.Unit_Delay_InitialCondition_hb;
31483
31484 /* InitializeConditions for UnitDelay: '<S1025>/Unit Delay' */
31485 L4_MABX_DW.UnitDelay_DSTATE_i = L4_MABX_P.UnitDelay_InitialCondition_o;
31486
31487 /* SystemInitialize for Enabled SubSystem: '<S1018>/RQST_13_E4' */
31488 /* SystemInitialize for Outport: '<S1020>/TX status' */
31489 L4_MABX_B.SFunction1_o1_f = L4_MABX_P.TXstatus_Y0_fa;
31490
31491 /* SystemInitialize for Outport: '<S1020>/TX time' */
31492 L4_MABX_B.SFunction1_o2_a = L4_MABX_P.TXtime_Y0_gt;
31493
31494 /* SystemInitialize for Outport: '<S1020>/TX delta time' */
31495 L4_MABX_B.SFunction1_o3_k = L4_MABX_P.TXdeltatime_Y0_lv;
31496
31497 /* SystemInitialize for Outport: '<S1020>/TX delay time' */
31498 L4_MABX_B.SFunction1_o4_k = L4_MABX_P.TXdelaytime_Y0_in;
31499
31500 /* End of SystemInitialize for SubSystem: '<S1018>/RQST_13_E4' */
31501 /* End of SystemInitialize for SubSystem: '<S824>/CAN_TX_5000ms' */
31502
31503 /* SystemInitialize for Enabled SubSystem: '<S635>/TC1_03_05' */
31504 /* SystemInitialize for Outport: '<S636>/SPN681_TransGearShiftInhibitReq' */
31505 L4_MABX_B.SFunction1_o1_l5 = L4_MABX_P.SPN681_TransGearShiftInhibitReq;
31506
31507 /* SystemInitialize for Outport: '<S636>/SPN682_TransTrqConvLockupDisReq' */
31508 L4_MABX_B.SFunction1_o2_ay = L4_MABX_P.SPN682_TransTrqConvLockupDisReq;
31509
31510 /* SystemInitialize for Outport: '<S636>/SPN683_DisengageDrivelineReq' */
31511 L4_MABX_B.SFunction1_o3_dv = L4_MABX_P.SPN683_DisengageDrivelineReq_Y0;
31512
31513 /* SystemInitialize for Outport: '<S636>/SPN4242_TransRevGearShiftInhibRq' */
31514 L4_MABX_B.SFunction1_o4_d = L4_MABX_P.SPN4242_TransRevGearShiftInhibR;
31515
31516 /* SystemInitialize for Outport: '<S636>/SPN684_RequestedPercClutchSlip' */
31517 L4_MABX_B.SFunction1_o5_d = L4_MABX_P.SPN684_RequestedPercClutchSlip_;
31518
31519 /* SystemInitialize for Outport: '<S636>/SPN525_TransRequestedGear' */
31520 L4_MABX_B.SFunction1_o6_k = L4_MABX_P.SPN525_TransRequestedGear_Y0;
31521
31522 /* SystemInitialize for Outport: '<S636>/SPN685_DisengageDiffLockRqFrAx1' */
31523 L4_MABX_B.SFunction1_o7_g = L4_MABX_P.SPN685_DisengageDiffLockRqFrAx1;
31524
31525 /* SystemInitialize for Outport: '<S636>/SPN686_DisengageDiffLockRqFrAx2' */
31526 L4_MABX_B.SFunction1_o8_n = L4_MABX_P.SPN686_DisengageDiffLockRqFrAx2;
31527
31528 /* SystemInitialize for Outport: '<S636>/SPN687_DisengageDiffLockRqRrAx1' */
31529 L4_MABX_B.SFunction1_o9_f = L4_MABX_P.SPN687_DisengageDiffLockRqRrAx1;
31530
31531 /* SystemInitialize for Outport: '<S636>/SPN688_DisengageDiffLockRqRrAx2' */
31532 L4_MABX_B.SFunction1_o10_f = L4_MABX_P.SPN688_DisengageDiffLockRqRrAx2;
31533
31534 /* SystemInitialize for Outport: '<S636>/SPN689_DisengageDiffLockRqC' */
31535 L4_MABX_B.SFunction1_o11 = L4_MABX_P.SPN689_DisengageDiffLockRqC_Y0;
31536
31537 /* SystemInitialize for Outport: '<S636>/SPN690_DisengageDiffLockRqCF' */
31538 L4_MABX_B.SFunction1_o12 = L4_MABX_P.SPN690_DisengageDiffLockRqCF_Y0;
31539
31540 /* SystemInitialize for Outport: '<S636>/SPN691_DisengageDiffLockRqCR' */
31541 L4_MABX_B.SFunction1_o13 = L4_MABX_P.SPN691_DisengageDiffLockRqCR_Y0;
31542
31543 /* SystemInitialize for Outport: '<S636>/SPN5762_TransLoadRedInhibitRq' */
31544 L4_MABX_B.SFunction1_o14 = L4_MABX_P.SPN5762_TransLoadRedInhibitRq_Y;
31545
31546 /* SystemInitialize for Outport: '<S636>/SPN1852_TransmissionMode1' */
31547 L4_MABX_B.SFunction1_o15 = L4_MABX_P.SPN1852_TransmissionMode1_Y0;
31548
31549 /* SystemInitialize for Outport: '<S636>/SPN1853_TransmissionMode2' */
31550 L4_MABX_B.SFunction1_o16 = L4_MABX_P.SPN1853_TransmissionMode2_Y0;
31551
31552 /* SystemInitialize for Outport: '<S636>/SPN1854_TransmissionMode3' */
31553 L4_MABX_B.SFunction1_o17 = L4_MABX_P.SPN1854_TransmissionMode3_Y0;
31554
31555 /* SystemInitialize for Outport: '<S636>/SPN1855_TransmissionMode4' */
31556 L4_MABX_B.SFunction1_o18 = L4_MABX_P.SPN1855_TransmissionMode4_Y0;
31557
31558 /* SystemInitialize for Outport: '<S636>/SPN7695_TransAutoNeutralRequest' */
31559 L4_MABX_B.SFunction1_o19 = L4_MABX_P.SPN7695_TransAutoNeutralRequest;
31560
31561 /* SystemInitialize for Outport: '<S636>/SPN4255_TransRequestedLaunchGear' */
31562 L4_MABX_B.SFunction1_o20 = L4_MABX_P.SPN4255_TransRequestedLaunchGea;
31563
31564 /* SystemInitialize for Outport: '<S636>/SPN2985_TransShiftSelDispModeSw' */
31565 L4_MABX_B.SFunction1_o21 = L4_MABX_P.SPN2985_TransShiftSelDispModeSw;
31566
31567 /* SystemInitialize for Outport: '<S636>/SPN4246_TransmissionMode5' */
31568 L4_MABX_B.SFunction1_o22 = L4_MABX_P.SPN4246_TransmissionMode5_Y0;
31569
31570 /* SystemInitialize for Outport: '<S636>/SPN4247_TransmissionMode6' */
31571 L4_MABX_B.SFunction1_o23 = L4_MABX_P.SPN4247_TransmissionMode6_Y0;
31572
31573 /* SystemInitialize for Outport: '<S636>/SPN4248_TransmissionMode7' */
31574 L4_MABX_B.SFunction1_o24 = L4_MABX_P.SPN4248_TransmissionMode7_Y0;
31575
31576 /* SystemInitialize for Outport: '<S636>/SPN4249_TransmissionMode8' */
31577 L4_MABX_B.SFunction1_o25 = L4_MABX_P.SPN4249_TransmissionMode8_Y0;
31578
31579 /* SystemInitialize for Outport: '<S636>/RX status' */
31580 L4_MABX_B.SFunction1_o26 = L4_MABX_P.RXstatus_Y0_d3;
31581
31582 /* SystemInitialize for Outport: '<S636>/RX time' */
31583 L4_MABX_B.SFunction1_o27 = L4_MABX_P.RXtime_Y0_nt;
31584
31585 /* SystemInitialize for Outport: '<S636>/RX delta time' */
31586 L4_MABX_B.SFunction1_o28 = L4_MABX_P.RXdeltatime_Y0_bf;
31587
31588 /* End of SystemInitialize for SubSystem: '<S635>/TC1_03_05' */
31589
31590 /* SystemInitialize for Atomic SubSystem: '<S824>/CAN_TX_50ms' */
31591 /* SystemInitialize for Enabled SubSystem: '<S1029>/CCVS1_E3' */
31592 /* SystemInitialize for Outport: '<S1031>/TX status' */
31593 L4_MABX_B.SFunction1_o1_hr = L4_MABX_P.TXstatus_Y0_gz;
31594
31595 /* SystemInitialize for Outport: '<S1031>/TX time' */
31596 L4_MABX_B.SFunction1_o2_cn = L4_MABX_P.TXtime_Y0_cz;
31597
31598 /* SystemInitialize for Outport: '<S1031>/TX delta time' */
31599 L4_MABX_B.SFunction1_o3_i = L4_MABX_P.TXdeltatime_Y0_be;
31600
31601 /* SystemInitialize for Outport: '<S1031>/TX delay time' */
31602 L4_MABX_B.SFunction1_o4_e = L4_MABX_P.TXdelaytime_Y0_on;
31603
31604 /* End of SystemInitialize for SubSystem: '<S1029>/CCVS1_E3' */
31605
31606 /* SystemInitialize for Enabled SubSystem: '<S1030>/TC1_03_05' */
31607 /* SystemInitialize for Outport: '<S1032>/TX status' */
31608 L4_MABX_B.SFunction1_o1_hy = L4_MABX_P.TXstatus_Y0_k;
31609
31610 /* SystemInitialize for Outport: '<S1032>/TX time' */
31611 L4_MABX_B.SFunction1_o2_o = L4_MABX_P.TXtime_Y0_d;
31612
31613 /* SystemInitialize for Outport: '<S1032>/TX delta time' */
31614 L4_MABX_B.SFunction1_o3_p = L4_MABX_P.TXdeltatime_Y0_h;
31615
31616 /* SystemInitialize for Outport: '<S1032>/TX delay time' */
31617 L4_MABX_B.SFunction1_o4_a = L4_MABX_P.TXdelaytime_Y0_kk;
31618
31619 /* End of SystemInitialize for SubSystem: '<S1030>/TC1_03_05' */
31620 /* End of SystemInitialize for SubSystem: '<S824>/CAN_TX_50ms' */
31621
31622 /* SystemInitialize for Enabled SubSystem: '<S633>/SystemTime_01' */
31623 /* SystemInitialize for Outport: '<S634>/SID' */
31624 L4_MABX_B.SFunction1_o1_k = L4_MABX_P.SID_Y0_d;
31625
31626 /* SystemInitialize for Outport: '<S634>/Source' */
31627 L4_MABX_B.SFunction1_o2_hp = L4_MABX_P.Source_Y0;
31628
31629 /* SystemInitialize for Outport: '<S634>/Date' */
31630 L4_MABX_B.SFunction1_o3_er = L4_MABX_P.Date_Y0;
31631
31632 /* SystemInitialize for Outport: '<S634>/Time' */
31633 L4_MABX_B.SFunction1_o4_dk = L4_MABX_P.Time_Y0;
31634
31635 /* SystemInitialize for Outport: '<S634>/RX status' */
31636 L4_MABX_B.SFunction1_o5_k = L4_MABX_P.RXstatus_Y0_p0;
31637
31638 /* SystemInitialize for Outport: '<S634>/RX time' */
31639 L4_MABX_B.SFunction1_o6_d = L4_MABX_P.RXtime_Y0_mq;
31640
31641 /* SystemInitialize for Outport: '<S634>/RX delta time' */
31642 L4_MABX_B.SFunction1_o7_o = L4_MABX_P.RXdeltatime_Y0_ap;
31643
31644 /* End of SystemInitialize for SubSystem: '<S633>/SystemTime_01' */
31645
31646 /* SystemInitialize for Enabled SubSystem: '<S1042>/Std_SystemTime_01' */
31647 /* SystemInitialize for Outport: '<S1044>/TX status' */
31648 L4_MABX_B.SFunction1_o1_h = L4_MABX_P.TXstatus_Y0_e;
31649
31650 /* SystemInitialize for Outport: '<S1044>/TX time' */
31651 L4_MABX_B.SFunction1_o2_c = L4_MABX_P.TXtime_Y0_jg;
31652
31653 /* SystemInitialize for Outport: '<S1044>/TX delta time' */
31654 L4_MABX_B.SFunction1_o3 = L4_MABX_P.TXdeltatime_Y0_n;
31655
31656 /* SystemInitialize for Outport: '<S1044>/TX delay time' */
31657 L4_MABX_B.SFunction1_o4 = L4_MABX_P.TXdelaytime_Y0_i4;
31658
31659 /* End of SystemInitialize for SubSystem: '<S1042>/Std_SystemTime_01' */
31660
31661 /* SystemInitialize for Triggered SubSystem: '<S1037>/CAN_TYPE1_TX_M1_C1' */
31662 /* SystemInitialize for Outport: '<S1039>/TX status' */
31663 L4_MABX_B.SFunction1_o1_b = L4_MABX_P.TXstatus_Y0_p;
31664
31665 /* SystemInitialize for Outport: '<S1039>/TX time' */
31666 L4_MABX_B.SFunction1_o2_i = L4_MABX_P.TXtime_Y0_n3;
31667
31668 /* SystemInitialize for Outport: '<S1039>/TX delta time' */
31669 L4_MABX_B.SFunction1_o3_e = L4_MABX_P.TXdeltatime_Y0_p3;
31670
31671 /* SystemInitialize for Outport: '<S1039>/TX delay time' */
31672 L4_MABX_B.SFunction1_o4_n = L4_MABX_P.TXdelaytime_Y0_lv;
31673
31674 /* End of SystemInitialize for SubSystem: '<S1037>/CAN_TYPE1_TX_M1_C1' */
31675
31676 /* SystemInitialize for Triggered SubSystem: '<S1038>/CAN_TYPE1_TX_M1_C1' */
31677 /* SystemInitialize for Outport: '<S1040>/TX status' */
31678 L4_MABX_B.SFunction1_o1_e = L4_MABX_P.TXstatus_Y0_o;
31679
31680 /* SystemInitialize for Outport: '<S1040>/TX time' */
31681 L4_MABX_B.SFunction1_o2_n = L4_MABX_P.TXtime_Y0_e;
31682
31683 /* SystemInitialize for Outport: '<S1040>/TX delta time' */
31684 L4_MABX_B.SFunction1_o3_l = L4_MABX_P.TXdeltatime_Y0_jt;
31685
31686 /* SystemInitialize for Outport: '<S1040>/TX delay time' */
31687 L4_MABX_B.SFunction1_o4_m = L4_MABX_P.TXdelaytime_Y0_a;
31688
31689 /* End of SystemInitialize for SubSystem: '<S1038>/CAN_TYPE1_TX_M1_C1' */
31690
31691 /* SystemInitialize for Chart: '<S834>/Chart' */
31692 L4_MABX_DW.temporalCounter_i1_m = 0U;
31693 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 0U;
31694 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
31695
31696 /* SystemInitialize for Enabled SubSystem: '<S568>/GNSSDOPs_011' */
31697 /* SystemInitialize for Outport: '<S569>/SID' */
31698 L4_MABX_B.SFunction1_o1_ey = L4_MABX_P.SID_Y0_f;
31699
31700 /* SystemInitialize for Outport: '<S569>/SetMode' */
31701 L4_MABX_B.SFunction1_o2_nr = L4_MABX_P.SetMode_Y0;
31702
31703 /* SystemInitialize for Outport: '<S569>/OpMode' */
31704 L4_MABX_B.SFunction1_o3_ai = L4_MABX_P.OpMode_Y0;
31705
31706 /* SystemInitialize for Outport: '<S569>/HDOP_' */
31707 L4_MABX_B.SFunction1_o4_p1 = L4_MABX_P.HDOP_Y0;
31708
31709 /* SystemInitialize for Outport: '<S569>/VDOP' */
31710 L4_MABX_B.SFunction1_o5_ba = L4_MABX_P.VDOP_Y0;
31711
31712 /* SystemInitialize for Outport: '<S569>/TDOP' */
31713 L4_MABX_B.SFunction1_o6_gn = L4_MABX_P.TDOP_Y0;
31714
31715 /* SystemInitialize for Outport: '<S569>/RX status' */
31716 L4_MABX_B.SFunction1_o7_j = L4_MABX_P.RXstatus_Y0_a5;
31717
31718 /* SystemInitialize for Outport: '<S569>/RX time' */
31719 L4_MABX_B.SFunction1_o8_l = L4_MABX_P.RXtime_Y0_g;
31720
31721 /* SystemInitialize for Outport: '<S569>/RX delta time' */
31722 L4_MABX_B.SFunction1_o9_bi = L4_MABX_P.RXdeltatime_Y0_o;
31723
31724 /* End of SystemInitialize for SubSystem: '<S568>/GNSSDOPs_011' */
31725
31726 /* SystemInitialize for Enabled SubSystem: '<S568>/GNSSDOPs_1' */
31727 /* SystemInitialize for Outport: '<S570>/SID' */
31728 L4_MABX_B.SFunction1_o1_d4 = L4_MABX_P.SID_Y0_j;
31729
31730 /* SystemInitialize for Outport: '<S570>/SetMode' */
31731 L4_MABX_B.SFunction1_o2_ca = L4_MABX_P.SetMode_Y0_d;
31732
31733 /* SystemInitialize for Outport: '<S570>/OpMode' */
31734 L4_MABX_B.SFunction1_o3_dt = L4_MABX_P.OpMode_Y0_e;
31735
31736 /* SystemInitialize for Outport: '<S570>/HDOP_' */
31737 L4_MABX_B.SFunction1_o4_an = L4_MABX_P.HDOP_Y0_p;
31738
31739 /* SystemInitialize for Outport: '<S570>/VDOP' */
31740 L4_MABX_B.SFunction1_o5_pg = L4_MABX_P.VDOP_Y0_e;
31741
31742 /* SystemInitialize for Outport: '<S570>/TDOP' */
31743 L4_MABX_B.SFunction1_o6_e = L4_MABX_P.TDOP_Y0_p;
31744
31745 /* SystemInitialize for Outport: '<S570>/RX status' */
31746 L4_MABX_B.SFunction1_o7_hx = L4_MABX_P.RXstatus_Y0_hi;
31747
31748 /* SystemInitialize for Outport: '<S570>/RX time' */
31749 L4_MABX_B.SFunction1_o8_br = L4_MABX_P.RXtime_Y0_o1;
31750
31751 /* SystemInitialize for Outport: '<S570>/RX delta time' */
31752 L4_MABX_B.SFunction1_o9_ny = L4_MABX_P.RXdeltatime_Y0_ou;
31753
31754 /* End of SystemInitialize for SubSystem: '<S568>/GNSSDOPs_1' */
31755
31756 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_20ms' */
31757 /* InitializeConditions for UnitDelay: '<S389>/Unit Delay1' */
31758 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_P.UnitDelay1_InitialCondition_p;
31759
31760 /* InitializeConditions for DiscreteIntegrator: '<S390>/LongitudnalPosition' */
31761 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
31762 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
31763
31764 /* InitializeConditions for DiscreteIntegrator: '<S390>/VehHeading' */
31765 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
31766 L4_MABX_DW.VehHeading_PrevResetState = 2;
31767
31768 /* InitializeConditions for DiscreteIntegrator: '<S390>/XPosition' */
31769 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
31770 L4_MABX_DW.XPosition_PrevResetState = 2;
31771
31772 /* InitializeConditions for DiscreteIntegrator: '<S390>/YPosition' */
31773 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
31774 L4_MABX_DW.YPosition_PrevResetState = 2;
31775
31776 /* End of SystemInitialize for SubSystem: '<S65>/Task_20ms' */
31777
31778 /* SystemInitialize for S-Function (rti_commonblock): '<S403>/S-Function1' incorporates:
31779 * SubSystem: '<S393>/Background_Task'
31780 */
31781 L4_MAB_Background_Task_Init();
31782
31783 /* End of SystemInitialize for S-Function (rti_commonblock): '<S403>/S-Function1' */
31784
31785 /* SystemInitialize for S-Function (rti_commonblock): '<S409>/S-Function1' incorporates:
31786 * SubSystem: '<S393>/Interrupt_Task'
31787 */
31788 L4_MABX_Interrupt_Task_Init();
31789
31790 /* End of SystemInitialize for S-Function (rti_commonblock): '<S409>/S-Function1' */
31791
31792 /* SystemInitialize for Enabled SubSystem: '<S490>/AEBS1_A0' */
31793 /* SystemInitialize for Outport: '<S491>/AdvEmergencyBrkSysState' */
31794 L4_MABX_B.SFunction1_o1_mj = L4_MABX_P.AdvEmergencyBrkSysState_Y0;
31795
31796 /* SystemInitialize for Outport: '<S491>/CollisionWarningLevel' */
31797 L4_MABX_B.SFunction1_o2_akn = L4_MABX_P.CollisionWarningLevel_Y0;
31798
31799 /* SystemInitialize for Outport: '<S491>/RelObjctDetForAdvEmergBrakingSys' */
31800 L4_MABX_B.SFunction1_o3_ck = L4_MABX_P.RelObjctDetForAdvEmergBrakingSy;
31801
31802 /* SystemInitialize for Outport: '<S491>/BendOffProbabOfRelevantObject' */
31803 L4_MABX_B.SFunction1_o4_n0 = L4_MABX_P.BendOffProbabOfRelevantObject_Y;
31804
31805 /* SystemInitialize for Outport: '<S491>/TimeToCollisionWithRelevantObj' */
31806 L4_MABX_B.SFunction1_o5_pv = L4_MABX_P.TimeToCollisionWithRelevantObj_;
31807
31808 /* SystemInitialize for Outport: '<S491>/RX status' */
31809 L4_MABX_B.SFunction1_o6_b3d = L4_MABX_P.RXstatus_Y0_k;
31810
31811 /* SystemInitialize for Outport: '<S491>/RX time' */
31812 L4_MABX_B.SFunction1_o7_hh = L4_MABX_P.RXtime_Y0_h;
31813
31814 /* SystemInitialize for Outport: '<S491>/RX delta time' */
31815 L4_MABX_B.SFunction1_o8_c = L4_MABX_P.RXdeltatime_Y0_p;
31816
31817 /* End of SystemInitialize for SubSystem: '<S490>/AEBS1_A0' */
31818
31819 /* SystemInitialize for Enabled SubSystem: '<S496>/B2' */
31820 /* SystemInitialize for Outport: '<S497>/BrakeAppPressDemanded' */
31821 L4_MABX_B.SFunction1_o1_cv = L4_MABX_P.BrakeAppPressDemanded_Y0;
31822
31823 /* SystemInitialize for Outport: '<S497>/BrakeSwitch2' */
31824 L4_MABX_B.SFunction1_o2_nk = L4_MABX_P.BrakeSwitch2_Y0;
31825
31826 /* SystemInitialize for Outport: '<S497>/RX status' */
31827 L4_MABX_B.SFunction1_o3_g3 = L4_MABX_P.RXstatus_Y0_h;
31828
31829 /* SystemInitialize for Outport: '<S497>/RX time' */
31830 L4_MABX_B.SFunction1_o4_n5 = L4_MABX_P.RXtime_Y0_m;
31831
31832 /* SystemInitialize for Outport: '<S497>/RX delta time' */
31833 L4_MABX_B.SFunction1_o5_dg = L4_MABX_P.RXdeltatime_Y0_b;
31834
31835 /* End of SystemInitialize for SubSystem: '<S496>/B2' */
31836
31837 /* SystemInitialize for Enabled SubSystem: '<S498>/Tracks' */
31838 /* SystemInitialize for Outport: '<S499>/tr0_track_selection_status' */
31839 L4_MABX_B.SFunction1_o1_ps = L4_MABX_P.tr0_track_selection_status_Y0;
31840
31841 /* SystemInitialize for Outport: '<S499>/tr0_corrected_lateral_distance' */
31842 L4_MABX_B.SFunction1_o2_dos = L4_MABX_P.tr0_corrected_lateral_distance_;
31843
31844 /* SystemInitialize for Outport: '<S499>/tr1_track_selection_status' */
31845 L4_MABX_B.SFunction1_o3_hy = L4_MABX_P.tr1_track_selection_status_Y0;
31846
31847 /* SystemInitialize for Outport: '<S499>/tr1_corrected_lateral_distance' */
31848 L4_MABX_B.SFunction1_o4_l1 = L4_MABX_P.tr1_corrected_lateral_distance_;
31849
31850 /* SystemInitialize for Outport: '<S499>/tr2_track_selection_status' */
31851 L4_MABX_B.SFunction1_o5_nc = L4_MABX_P.tr2_track_selection_status_Y0;
31852
31853 /* SystemInitialize for Outport: '<S499>/tr2_corrected_lateral_distance' */
31854 L4_MABX_B.SFunction1_o6_cd = L4_MABX_P.tr2_corrected_lateral_distance_;
31855
31856 /* SystemInitialize for Outport: '<S499>/tr3_track_selection_status' */
31857 L4_MABX_B.SFunction1_o7_jr = L4_MABX_P.tr3_track_selection_status_Y0;
31858
31859 /* SystemInitialize for Outport: '<S499>/tr3_corrected_lateral_distance' */
31860 L4_MABX_B.SFunction1_o8_g = L4_MABX_P.tr3_corrected_lateral_distance_;
31861
31862 /* SystemInitialize for Outport: '<S499>/tr4_track_selection_status' */
31863 L4_MABX_B.SFunction1_o9_oh = L4_MABX_P.tr4_track_selection_status_Y0;
31864
31865 /* SystemInitialize for Outport: '<S499>/tr4_corrected_lateral_distance' */
31866 L4_MABX_B.SFunction1_o10_l4 = L4_MABX_P.tr4_corrected_lateral_distance_;
31867
31868 /* SystemInitialize for Outport: '<S499>/tr5_track_selection_status' */
31869 L4_MABX_B.SFunction1_o11_k = L4_MABX_P.tr5_track_selection_status_Y0;
31870
31871 /* SystemInitialize for Outport: '<S499>/tr5_corrected_lateral_distance' */
31872 L4_MABX_B.SFunction1_o12_b = L4_MABX_P.tr5_corrected_lateral_distance_;
31873
31874 /* SystemInitialize for Outport: '<S499>/tr6_track_selection_status' */
31875 L4_MABX_B.SFunction1_o13_m = L4_MABX_P.tr6_track_selection_status_Y0;
31876
31877 /* SystemInitialize for Outport: '<S499>/tr6_corrected_lateral_distance' */
31878 L4_MABX_B.SFunction1_o14_n = L4_MABX_P.tr6_corrected_lateral_distance_;
31879
31880 /* SystemInitialize for Outport: '<S499>/tr7_track_selection_status' */
31881 L4_MABX_B.SFunction1_o15_p = L4_MABX_P.tr7_track_selection_status_Y0;
31882
31883 /* SystemInitialize for Outport: '<S499>/tr7_corrected_lateral_distance' */
31884 L4_MABX_B.SFunction1_o16_b = L4_MABX_P.tr7_corrected_lateral_distance_;
31885
31886 /* SystemInitialize for Outport: '<S499>/tr8_track_selection_status' */
31887 L4_MABX_B.SFunction1_o17_f = L4_MABX_P.tr8_track_selection_status_Y0;
31888
31889 /* SystemInitialize for Outport: '<S499>/tr8_corrected_lateral_distance' */
31890 L4_MABX_B.SFunction1_o18_p = L4_MABX_P.tr8_corrected_lateral_distance_;
31891
31892 /* SystemInitialize for Outport: '<S499>/tr9_track_selection_status' */
31893 L4_MABX_B.SFunction1_o19_kc = L4_MABX_P.tr9_track_selection_status_Y0;
31894
31895 /* SystemInitialize for Outport: '<S499>/tr9_corrected_lateral_distance' */
31896 L4_MABX_B.SFunction1_o20_m = L4_MABX_P.tr9_corrected_lateral_distance_;
31897
31898 /* SystemInitialize for Outport: '<S499>/tr0_lateral_position' */
31899 L4_MABX_B.SFunction1_o21_o = L4_MABX_P.tr0_lateral_position_Y0;
31900
31901 /* SystemInitialize for Outport: '<S499>/tr1_lateral_position' */
31902 L4_MABX_B.SFunction1_o22_o = L4_MABX_P.tr1_lateral_position_Y0;
31903
31904 /* SystemInitialize for Outport: '<S499>/tr2_lateral_position' */
31905 L4_MABX_B.SFunction1_o23_o = L4_MABX_P.tr2_lateral_position_Y0;
31906
31907 /* SystemInitialize for Outport: '<S499>/tr3_lateral_position' */
31908 L4_MABX_B.SFunction1_o24_n = L4_MABX_P.tr3_lateral_position_Y0;
31909
31910 /* SystemInitialize for Outport: '<S499>/tr4_lateral_position' */
31911 L4_MABX_B.SFunction1_o25_n = L4_MABX_P.tr4_lateral_position_Y0;
31912
31913 /* SystemInitialize for Outport: '<S499>/tr5_lateral_position' */
31914 L4_MABX_B.SFunction1_o26_c = L4_MABX_P.tr5_lateral_position_Y0;
31915
31916 /* SystemInitialize for Outport: '<S499>/tr6_lateral_position' */
31917 L4_MABX_B.SFunction1_o27_e = L4_MABX_P.tr6_lateral_position_Y0;
31918
31919 /* SystemInitialize for Outport: '<S499>/tr7_lateral_position' */
31920 L4_MABX_B.SFunction1_o28_m = L4_MABX_P.tr7_lateral_position_Y0;
31921
31922 /* SystemInitialize for Outport: '<S499>/tr8_lateral_position' */
31923 L4_MABX_B.SFunction1_o29 = L4_MABX_P.tr8_lateral_position_Y0;
31924
31925 /* SystemInitialize for Outport: '<S499>/tr9_lateral_position' */
31926 L4_MABX_B.SFunction1_o30 = L4_MABX_P.tr9_lateral_position_Y0;
31927
31928 /* SystemInitialize for Outport: '<S499>/tr0_range' */
31929 L4_MABX_B.SFunction1_o31 = L4_MABX_P.tr0_range_Y0;
31930
31931 /* SystemInitialize for Outport: '<S499>/tr1_range' */
31932 L4_MABX_B.SFunction1_o32 = L4_MABX_P.tr1_range_Y0;
31933
31934 /* SystemInitialize for Outport: '<S499>/tr2_range' */
31935 L4_MABX_B.SFunction1_o33 = L4_MABX_P.tr2_range_Y0;
31936
31937 /* SystemInitialize for Outport: '<S499>/tr3_range' */
31938 L4_MABX_B.SFunction1_o34 = L4_MABX_P.tr3_range_Y0;
31939
31940 /* SystemInitialize for Outport: '<S499>/tr4_range' */
31941 L4_MABX_B.SFunction1_o35 = L4_MABX_P.tr4_range_Y0;
31942
31943 /* SystemInitialize for Outport: '<S499>/tr5_range' */
31944 L4_MABX_B.SFunction1_o36 = L4_MABX_P.tr5_range_Y0;
31945
31946 /* SystemInitialize for Outport: '<S499>/tr6_range' */
31947 L4_MABX_B.SFunction1_o37 = L4_MABX_P.tr6_range_Y0;
31948
31949 /* SystemInitialize for Outport: '<S499>/tr7_range' */
31950 L4_MABX_B.SFunction1_o38 = L4_MABX_P.tr7_range_Y0;
31951
31952 /* SystemInitialize for Outport: '<S499>/tr8_range' */
31953 L4_MABX_B.SFunction1_o39 = L4_MABX_P.tr8_range_Y0;
31954
31955 /* SystemInitialize for Outport: '<S499>/tr9_range' */
31956 L4_MABX_B.SFunction1_o40 = L4_MABX_P.tr9_range_Y0;
31957
31958 /* SystemInitialize for Outport: '<S499>/tr0_radar_confidence' */
31959 L4_MABX_B.SFunction1_o41 = L4_MABX_P.tr0_radar_confidence_Y0;
31960
31961 /* SystemInitialize for Outport: '<S499>/tr1_radar_confidence' */
31962 L4_MABX_B.SFunction1_o42 = L4_MABX_P.tr1_radar_confidence_Y0;
31963
31964 /* SystemInitialize for Outport: '<S499>/tr2_radar_confidence' */
31965 L4_MABX_B.SFunction1_o43 = L4_MABX_P.tr2_radar_confidence_Y0;
31966
31967 /* SystemInitialize for Outport: '<S499>/tr3_radar_confidence' */
31968 L4_MABX_B.SFunction1_o44 = L4_MABX_P.tr3_radar_confidence_Y0;
31969
31970 /* SystemInitialize for Outport: '<S499>/tr4_radar_confidence' */
31971 L4_MABX_B.SFunction1_o45 = L4_MABX_P.tr4_radar_confidence_Y0;
31972
31973 /* SystemInitialize for Outport: '<S499>/tr5_radar_confidence' */
31974 L4_MABX_B.SFunction1_o46 = L4_MABX_P.tr5_radar_confidence_Y0;
31975
31976 /* SystemInitialize for Outport: '<S499>/tr6_radar_confidence' */
31977 L4_MABX_B.SFunction1_o47 = L4_MABX_P.tr6_radar_confidence_Y0;
31978
31979 /* SystemInitialize for Outport: '<S499>/tr7_radar_confidence' */
31980 L4_MABX_B.SFunction1_o48 = L4_MABX_P.tr7_radar_confidence_Y0;
31981
31982 /* SystemInitialize for Outport: '<S499>/tr8_radar_confidence' */
31983 L4_MABX_B.SFunction1_o49 = L4_MABX_P.tr8_radar_confidence_Y0;
31984
31985 /* SystemInitialize for Outport: '<S499>/tr9_radar_confidence' */
31986 L4_MABX_B.SFunction1_o50 = L4_MABX_P.tr9_radar_confidence_Y0;
31987
31988 /* SystemInitialize for Outport: '<S499>/tr0_relative_velocitiy' */
31989 L4_MABX_B.SFunction1_o51 = L4_MABX_P.tr0_relative_velocitiy_Y0;
31990
31991 /* SystemInitialize for Outport: '<S499>/tr0_acceleration_over_ground' */
31992 L4_MABX_B.SFunction1_o52 = L4_MABX_P.tr0_acceleration_over_ground_Y0;
31993
31994 /* SystemInitialize for Outport: '<S499>/tr1_relative_velocitiy' */
31995 L4_MABX_B.SFunction1_o53 = L4_MABX_P.tr1_relative_velocitiy_Y0;
31996
31997 /* SystemInitialize for Outport: '<S499>/tr1_acceleration_over_ground' */
31998 L4_MABX_B.SFunction1_o54 = L4_MABX_P.tr1_acceleration_over_ground_Y0;
31999
32000 /* SystemInitialize for Outport: '<S499>/tr2_relative_velocitiy' */
32001 L4_MABX_B.SFunction1_o55 = L4_MABX_P.tr2_relative_velocitiy_Y0;
32002
32003 /* SystemInitialize for Outport: '<S499>/tr2_acceleration_over_ground' */
32004 L4_MABX_B.SFunction1_o56 = L4_MABX_P.tr2_acceleration_over_ground_Y0;
32005
32006 /* SystemInitialize for Outport: '<S499>/tr3_relative_velocitiy' */
32007 L4_MABX_B.SFunction1_o57 = L4_MABX_P.tr3_relative_velocitiy_Y0;
32008
32009 /* SystemInitialize for Outport: '<S499>/tr3_acceleration_over_ground' */
32010 L4_MABX_B.SFunction1_o58 = L4_MABX_P.tr3_acceleration_over_ground_Y0;
32011
32012 /* SystemInitialize for Outport: '<S499>/tr4_relative_velocitiy' */
32013 L4_MABX_B.SFunction1_o59 = L4_MABX_P.tr4_relative_velocitiy_Y0;
32014
32015 /* SystemInitialize for Outport: '<S499>/tr4_acceleration_over_ground' */
32016 L4_MABX_B.SFunction1_o60 = L4_MABX_P.tr4_acceleration_over_ground_Y0;
32017
32018 /* SystemInitialize for Outport: '<S499>/tr5_relative_velocitiy' */
32019 L4_MABX_B.SFunction1_o61 = L4_MABX_P.tr5_relative_velocitiy_Y0;
32020
32021 /* SystemInitialize for Outport: '<S499>/tr5_acceleration_over_ground' */
32022 L4_MABX_B.SFunction1_o62 = L4_MABX_P.tr5_acceleration_over_ground_Y0;
32023
32024 /* SystemInitialize for Outport: '<S499>/tr6_relative_velocitiy' */
32025 L4_MABX_B.SFunction1_o63 = L4_MABX_P.tr6_relative_velocitiy_Y0;
32026
32027 /* SystemInitialize for Outport: '<S499>/tr6_acceleration_over_ground' */
32028 L4_MABX_B.SFunction1_o64 = L4_MABX_P.tr6_acceleration_over_ground_Y0;
32029
32030 /* SystemInitialize for Outport: '<S499>/tr7_relative_velocitiy' */
32031 L4_MABX_B.SFunction1_o65 = L4_MABX_P.tr7_relative_velocitiy_Y0;
32032
32033 /* SystemInitialize for Outport: '<S499>/tr7_acceleration_over_ground' */
32034 L4_MABX_B.SFunction1_o66 = L4_MABX_P.tr7_acceleration_over_ground_Y0;
32035
32036 /* SystemInitialize for Outport: '<S499>/tr8_relative_velocitiy' */
32037 L4_MABX_B.SFunction1_o67 = L4_MABX_P.tr8_relative_velocitiy_Y0;
32038
32039 /* SystemInitialize for Outport: '<S499>/tr8_acceleration_over_ground' */
32040 L4_MABX_B.SFunction1_o68 = L4_MABX_P.tr8_acceleration_over_ground_Y0;
32041
32042 /* SystemInitialize for Outport: '<S499>/tr9_relative_velocitiy' */
32043 L4_MABX_B.SFunction1_o69 = L4_MABX_P.tr9_relative_velocitiy_Y0;
32044
32045 /* SystemInitialize for Outport: '<S499>/tr9_acceleration_over_ground' */
32046 L4_MABX_B.SFunction1_o70 = L4_MABX_P.tr9_acceleration_over_ground_Y0;
32047
32048 /* SystemInitialize for Outport: '<S499>/track_multiplexor' */
32049 L4_MABX_B.SFunction1_o71 = L4_MABX_P.track_multiplexor_Y0;
32050
32051 /* SystemInitialize for Outport: '<S499>/RX status' */
32052 L4_MABX_B.SFunction1_o72 = L4_MABX_P.RXstatus_Y0_p;
32053
32054 /* SystemInitialize for Outport: '<S499>/RX time' */
32055 L4_MABX_B.SFunction1_o73 = L4_MABX_P.RXtime_Y0_e;
32056
32057 /* SystemInitialize for Outport: '<S499>/RX delta time' */
32058 L4_MABX_B.SFunction1_o74 = L4_MABX_P.RXdeltatime_Y0_d;
32059
32060 /* End of SystemInitialize for SubSystem: '<S498>/Tracks' */
32061
32062 /* SystemInitialize for Enabled SubSystem: '<S509>/EBC1_0B' */
32063 /* SystemInitialize for Outport: '<S510>/ASREngCtrlActive' */
32064 L4_MABX_B.SFunction1_o1_au = L4_MABX_P.ASREngCtrlActive_Y0;
32065
32066 /* SystemInitialize for Outport: '<S510>/ASRBrakeCtrlActive' */
32067 L4_MABX_B.SFunction1_o2_fe = L4_MABX_P.ASRBrakeCtrlActive_Y0;
32068
32069 /* SystemInitialize for Outport: '<S510>/AntiLockBrakingActive' */
32070 L4_MABX_B.SFunction1_o3_nf = L4_MABX_P.AntiLockBrakingActive_Y0;
32071
32072 /* SystemInitialize for Outport: '<S510>/EBSBrakeSwitch' */
32073 L4_MABX_B.SFunction1_o4_bs = L4_MABX_P.EBSBrakeSwitch_Y0;
32074
32075 /* SystemInitialize for Outport: '<S510>/BrakePedalPos' */
32076 L4_MABX_B.SFunction1_o5_ck = L4_MABX_P.BrakePedalPos_Y0;
32077
32078 /* SystemInitialize for Outport: '<S510>/ABSOffroadSwitch' */
32079 L4_MABX_B.SFunction1_o6_h1 = L4_MABX_P.ABSOffroadSwitch_Y0;
32080
32081 /* SystemInitialize for Outport: '<S510>/ASROffroadSwitch' */
32082 L4_MABX_B.SFunction1_o7_ja = L4_MABX_P.ASROffroadSwitch_Y0;
32083
32084 /* SystemInitialize for Outport: '<S510>/ASRHillHolderSwitch' */
32085 L4_MABX_B.SFunction1_o8_f2 = L4_MABX_P.ASRHillHolderSwitch_Y0;
32086
32087 /* SystemInitialize for Outport: '<S510>/TractionCtrlOverrideSwitch' */
32088 L4_MABX_B.SFunction1_o9_kf = L4_MABX_P.TractionCtrlOverrideSwitch_Y0;
32089
32090 /* SystemInitialize for Outport: '<S510>/AccelInterlockSwitch' */
32091 L4_MABX_B.SFunction1_o10_du = L4_MABX_P.AccelInterlockSwitch_Y0;
32092
32093 /* SystemInitialize for Outport: '<S510>/EngDerateSwitch' */
32094 L4_MABX_B.SFunction1_o11_nl = L4_MABX_P.EngDerateSwitch_Y0;
32095
32096 /* SystemInitialize for Outport: '<S510>/EngAuxShutdownSwitch' */
32097 L4_MABX_B.SFunction1_o12_o = L4_MABX_P.EngAuxShutdownSwitch_Y0;
32098
32099 /* SystemInitialize for Outport: '<S510>/RemoteAccelEnableSwitch' */
32100 L4_MABX_B.SFunction1_o13_l = L4_MABX_P.RemoteAccelEnableSwitch_Y0;
32101
32102 /* SystemInitialize for Outport: '<S510>/EngRetarderSelection' */
32103 L4_MABX_B.SFunction1_o14_a4 = L4_MABX_P.EngRetarderSelection_Y0;
32104
32105 /* SystemInitialize for Outport: '<S510>/ABSFullyOperational' */
32106 L4_MABX_B.SFunction1_o15_k = L4_MABX_P.ABSFullyOperational_Y0;
32107
32108 /* SystemInitialize for Outport: '<S510>/EBSRedWarningSignal' */
32109 L4_MABX_B.SFunction1_o16_d = L4_MABX_P.EBSRedWarningSignal_Y0;
32110
32111 /* SystemInitialize for Outport: '<S510>/ABS_EBSAmberWarningSignal' */
32112 L4_MABX_B.SFunction1_o17_a = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0;
32113
32114 /* SystemInitialize for Outport: '<S510>/ATC_ASRInformationSignal' */
32115 L4_MABX_B.SFunction1_o18_a = L4_MABX_P.ATC_ASRInformationSignal_Y0;
32116
32117 /* SystemInitialize for Outport: '<S510>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
32118 L4_MABX_B.SFunction1_o19_k = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCntrl;
32119
32120 /* SystemInitialize for Outport: '<S510>/HaltBrakeSwitch' */
32121 L4_MABX_B.SFunction1_o20_e = L4_MABX_P.HaltBrakeSwitch_Y0;
32122
32123 /* SystemInitialize for Outport: '<S510>/TrailerABSStatus' */
32124 L4_MABX_B.SFunction1_o21_n = L4_MABX_P.TrailerABSStatus_Y0;
32125
32126 /* SystemInitialize for Outport: '<S510>/TrctrMntdTrilerABSWarningSignal' */
32127 L4_MABX_B.SFunction1_o22_p = L4_MABX_P.TrctrMntdTrilerABSWarningSignal;
32128
32129 /* SystemInitialize for Outport: '<S510>/RX status' */
32130 L4_MABX_B.SFunction1_o23_l = L4_MABX_P.RXstatus_Y0_n;
32131
32132 /* SystemInitialize for Outport: '<S510>/RX time' */
32133 L4_MABX_B.SFunction1_o24_l = L4_MABX_P.RXtime_Y0_ey;
32134
32135 /* SystemInitialize for Outport: '<S510>/RX delta time' */
32136 L4_MABX_B.SFunction1_o25_fk = L4_MABX_P.RXdeltatime_Y0_j;
32137
32138 /* End of SystemInitialize for SubSystem: '<S509>/EBC1_0B' */
32139
32140 /* SystemInitialize for Enabled SubSystem: '<S562>/EEC2_001' */
32141 /* SystemInitialize for Outport: '<S563>/SPN558_AccelPed1LowIdlSwitch' */
32142 L4_MABX_B.SFunction1_o1_j = L4_MABX_P.SPN558_AccelPed1LowIdlSwitch_Y0;
32143
32144 /* SystemInitialize for Outport: '<S563>/SPN559_AccelPedKickdownSw' */
32145 L4_MABX_B.SFunction1_o2_ft = L4_MABX_P.SPN559_AccelPedKickdownSw_Y0;
32146
32147 /* SystemInitialize for Outport: '<S563>/SPN1437_RoadSpeedLimitStatus' */
32148 L4_MABX_B.SFunction1_o3_jp = L4_MABX_P.SPN1437_RoadSpeedLimitStatus_Y0;
32149
32150 /* SystemInitialize for Outport: '<S563>/SPN2970_AccelPed2LowIdlSwitch' */
32151 L4_MABX_B.SFunction1_o4_bi = L4_MABX_P.SPN2970_AccelPed2LowIdlSwitch_Y;
32152
32153 /* SystemInitialize for Outport: '<S563>/SPN91_AccelPedPos1' */
32154 L4_MABX_B.SFunction1_o5_c4 = L4_MABX_P.SPN91_AccelPedPos1_Y0;
32155
32156 /* SystemInitialize for Outport: '<S563>/SPN92_EngPercLoadAtCurrSpd' */
32157 L4_MABX_B.SFunction1_o6_pm = L4_MABX_P.SPN92_EngPercLoadAtCurrSpd_Y0;
32158
32159 /* SystemInitialize for Outport: '<S563>/SPN974_RemAccelPedalPosition' */
32160 L4_MABX_B.SFunction1_o7_oq = L4_MABX_P.SPN974_RemAccelPedalPosition_Y0;
32161
32162 /* SystemInitialize for Outport: '<S563>/SPN29_AccelPedPos2' */
32163 L4_MABX_B.SFunction1_o8_lf = L4_MABX_P.SPN29_AccelPedPos2_Y0;
32164
32165 /* SystemInitialize for Outport: '<S563>/SPN2979_VehAccelRateLimStatus' */
32166 L4_MABX_B.SFunction1_o9_l = L4_MABX_P.SPN2979_VehAccelRateLimStatus_Y;
32167
32168 /* SystemInitialize for Outport: '<S563>/SPN5021_MomEngMaxPwrEnFdbk' */
32169 L4_MABX_B.SFunction1_o10_fp = L4_MABX_P.SPN5021_MomEngMaxPwrEnFdbk_Y0;
32170
32171 /* SystemInitialize for Outport: '<S563>/SPN5399_DPFThermMgmtActive' */
32172 L4_MABX_B.SFunction1_o11_nm = L4_MABX_P.SPN5399_DPFThermMgmtActive_Y0;
32173
32174 /* SystemInitialize for Outport: '<S563>/SPN5400_SCRThermMgmtActive' */
32175 L4_MABX_B.SFunction1_o12_n = L4_MABX_P.SPN5400_SCRThermMgmtActive_Y0;
32176
32177 /* SystemInitialize for Outport: '<S563>/SPN3357_ActMaxAvailEngPercTrq' */
32178 L4_MABX_B.SFunction1_o13_j = L4_MABX_P.SPN3357_ActMaxAvailEngPercTrq_Y;
32179
32180 /* SystemInitialize for Outport: '<S563>/SPN5398_EstPumpingPercentTorque' */
32181 L4_MABX_B.SFunction1_o14_p = L4_MABX_P.SPN5398_EstPumpingPercentTorque;
32182
32183 /* SystemInitialize for Outport: '<S563>/RX status' */
32184 L4_MABX_B.SFunction1_o15_c = L4_MABX_P.RXstatus_Y0_dr;
32185
32186 /* SystemInitialize for Outport: '<S563>/RX time' */
32187 L4_MABX_B.SFunction1_o16_e = L4_MABX_P.RXtime_Y0_a3;
32188
32189 /* SystemInitialize for Outport: '<S563>/RX delta time' */
32190 L4_MABX_B.SFunction1_o17_b = L4_MABX_P.RXdeltatime_Y0_pe;
32191
32192 /* End of SystemInitialize for SubSystem: '<S562>/EEC2_001' */
32193
32194 /* SystemInitialize for Enabled SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' */
32195 /* SystemInitialize for Outport: '<S607>/EPBPCMInhibitStatusFeedback' */
32196 L4_MABX_B.SFunction1_o1_i3 = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y0;
32197
32198 /* SystemInitialize for Outport: '<S607>/EPBPCMManualStatusFeedback' */
32199 L4_MABX_B.SFunction1_o2_g = L4_MABX_P.EPBPCMManualStatusFeedback_Y0;
32200
32201 /* SystemInitialize for Outport: '<S607>/RX status' */
32202 L4_MABX_B.SFunction1_o3_le = L4_MABX_P.RXstatus_Y0_g;
32203
32204 /* SystemInitialize for Outport: '<S607>/RX time' */
32205 L4_MABX_B.SFunction1_o4_i = L4_MABX_P.RXtime_Y0_n1;
32206
32207 /* SystemInitialize for Outport: '<S607>/RX delta time' */
32208 L4_MABX_B.SFunction1_o5_ir = L4_MABX_P.RXdeltatime_Y0_e;
32209
32210 /* End of SystemInitialize for SubSystem: '<S603>/CAN_TYPE1_RX_M1_C1' */
32211
32212 /* SystemInitialize for Enabled SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' */
32213 /* SystemInitialize for Outport: '<S608>/EPBPCMInhibitStatusFeedback' */
32214 L4_MABX_B.SFunction1_o1_h5 = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_p;
32215
32216 /* SystemInitialize for Outport: '<S608>/EPBPCMManualStatusFeedback' */
32217 L4_MABX_B.SFunction1_o2_lh = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_n;
32218
32219 /* SystemInitialize for Outport: '<S608>/RX status' */
32220 L4_MABX_B.SFunction1_o3_cs = L4_MABX_P.RXstatus_Y0_pe;
32221
32222 /* SystemInitialize for Outport: '<S608>/RX time' */
32223 L4_MABX_B.SFunction1_o4_e0 = L4_MABX_P.RXtime_Y0_fj;
32224
32225 /* SystemInitialize for Outport: '<S608>/RX delta time' */
32226 L4_MABX_B.SFunction1_o5_c5 = L4_MABX_P.RXdeltatime_Y0_ki;
32227
32228 /* End of SystemInitialize for SubSystem: '<S604>/CAN_TYPE1_RX_M1_C2' */
32229
32230 /* SystemInitialize for Enabled SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' */
32231 /* SystemInitialize for Outport: '<S609>/EPBPCMInhibitStatusFeedback' */
32232 L4_MABX_B.SFunction1_o1_mp = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_n;
32233
32234 /* SystemInitialize for Outport: '<S609>/EPBPCMManualStatusFeedback' */
32235 L4_MABX_B.SFunction1_o2_ng = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_o;
32236
32237 /* SystemInitialize for Outport: '<S609>/RX status' */
32238 L4_MABX_B.SFunction1_o3_ii = L4_MABX_P.RXstatus_Y0_ix;
32239
32240 /* SystemInitialize for Outport: '<S609>/RX time' */
32241 L4_MABX_B.SFunction1_o4_jn = L4_MABX_P.RXtime_Y0_mg;
32242
32243 /* SystemInitialize for Outport: '<S609>/RX delta time' */
32244 L4_MABX_B.SFunction1_o5_o = L4_MABX_P.RXdeltatime_Y0_gu;
32245
32246 /* End of SystemInitialize for SubSystem: '<S605>/CAN_TYPE1_RX_M2_C1' */
32247
32248 /* SystemInitialize for Enabled SubSystem: '<S616>/PX2_LaneEdgeLeft' */
32249 /* SystemInitialize for Outport: '<S617>/PX2_LaneEdgeLeftAngle' */
32250 L4_MABX_B.SFunction1_o1_ld = L4_MABX_P.PX2_LaneEdgeLeftAngle_Y0;
32251
32252 /* SystemInitialize for Outport: '<S617>/PX2_LaneEdgeLeftNumPoints' */
32253 L4_MABX_B.SFunction1_o2_dx = L4_MABX_P.PX2_LaneEdgeLeftNumPoints_Y0;
32254
32255 /* SystemInitialize for Outport: '<S617>/PX2_LaneEdgeLeftPosition' */
32256 L4_MABX_B.SFunction1_o3_ip = L4_MABX_P.PX2_LaneEdgeLeftPosition_Y0;
32257
32258 /* SystemInitialize for Outport: '<S617>/RX status' */
32259 L4_MABX_B.SFunction1_o4_o = L4_MABX_P.RXstatus_Y0_j;
32260
32261 /* SystemInitialize for Outport: '<S617>/RX time' */
32262 L4_MABX_B.SFunction1_o5_g5 = L4_MABX_P.RXtime_Y0_hy;
32263
32264 /* SystemInitialize for Outport: '<S617>/RX delta time' */
32265 L4_MABX_B.SFunction1_o6_n = L4_MABX_P.RXdeltatime_Y0_om;
32266
32267 /* End of SystemInitialize for SubSystem: '<S616>/PX2_LaneEdgeLeft' */
32268
32269 /* SystemInitialize for Enabled SubSystem: '<S616>/PX2_LaneEdgeRight' */
32270 /* SystemInitialize for Outport: '<S618>/PX2_LaneEdgeRightAngle' */
32271 L4_MABX_B.SFunction1_o1_ew = L4_MABX_P.PX2_LaneEdgeRightAngle_Y0;
32272
32273 /* SystemInitialize for Outport: '<S618>/PX2_LaneEdgeRightNumPoints' */
32274 L4_MABX_B.SFunction1_o2_do = L4_MABX_P.PX2_LaneEdgeRightNumPoints_Y0;
32275
32276 /* SystemInitialize for Outport: '<S618>/PX2_LaneEdgeRightPosition' */
32277 L4_MABX_B.SFunction1_o3_di = L4_MABX_P.PX2_LaneEdgeRightPosition_Y0;
32278
32279 /* SystemInitialize for Outport: '<S618>/RX status' */
32280 L4_MABX_B.SFunction1_o4_fc = L4_MABX_P.RXstatus_Y0_ge;
32281
32282 /* SystemInitialize for Outport: '<S618>/RX time' */
32283 L4_MABX_B.SFunction1_o5_dq = L4_MABX_P.RXtime_Y0_bm;
32284
32285 /* SystemInitialize for Outport: '<S618>/RX delta time' */
32286 L4_MABX_B.SFunction1_o6_g = L4_MABX_P.RXdeltatime_Y0_gy;
32287
32288 /* End of SystemInitialize for SubSystem: '<S616>/PX2_LaneEdgeRight' */
32289
32290 /* SystemInitialize for Enabled SubSystem: '<S627>/PX2_MapLaneEgoLeft' */
32291 /* SystemInitialize for Outport: '<S628>/PX2_MapLaneNearPos' */
32292 L4_MABX_B.SFunction1_o1_gl = L4_MABX_P.PX2_MapLaneNearPos_Y0;
32293
32294 /* SystemInitialize for Outport: '<S628>/PX2_MapLaneMidPos' */
32295 L4_MABX_B.SFunction1_o2_bg = L4_MABX_P.PX2_MapLaneMidPos_Y0;
32296
32297 /* SystemInitialize for Outport: '<S628>/PX2_MapLaneFarPos' */
32298 L4_MABX_B.SFunction1_o3_kp = L4_MABX_P.PX2_MapLaneFarPos_Y0;
32299
32300 /* SystemInitialize for Outport: '<S628>/PX2_EgoLaneNearPosValid' */
32301 L4_MABX_B.SFunction1_o4_pg = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0;
32302
32303 /* SystemInitialize for Outport: '<S628>/PX2_EgoLaneMidPosValid' */
32304 L4_MABX_B.SFunction1_o5_h = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0;
32305
32306 /* SystemInitialize for Outport: '<S628>/PX2_EgoLaneFarPosValid' */
32307 L4_MABX_B.SFunction1_o6_dg = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0;
32308
32309 /* SystemInitialize for Outport: '<S628>/RX status' */
32310 L4_MABX_B.SFunction1_o7_d = L4_MABX_P.RXstatus_Y0_kw;
32311
32312 /* SystemInitialize for Outport: '<S628>/RX time' */
32313 L4_MABX_B.SFunction1_o8_io = L4_MABX_P.RXtime_Y0_eg;
32314
32315 /* SystemInitialize for Outport: '<S628>/RX delta time' */
32316 L4_MABX_B.SFunction1_o9_b = L4_MABX_P.RXdeltatime_Y0_gi;
32317
32318 /* End of SystemInitialize for SubSystem: '<S627>/PX2_MapLaneEgoLeft' */
32319
32320 /* SystemInitialize for Enabled SubSystem: '<S629>/PX2_MapLaneEgoRight' */
32321 /* SystemInitialize for Outport: '<S630>/PX2_MapLaneNearPos' */
32322 L4_MABX_B.SFunction1_o1_d = L4_MABX_P.PX2_MapLaneNearPos_Y0_f;
32323
32324 /* SystemInitialize for Outport: '<S630>/PX2_MapLaneMidPos' */
32325 L4_MABX_B.SFunction1_o2_d2 = L4_MABX_P.PX2_MapLaneMidPos_Y0_d;
32326
32327 /* SystemInitialize for Outport: '<S630>/PX2_MapLaneFarPos' */
32328 L4_MABX_B.SFunction1_o3_fr = L4_MABX_P.PX2_MapLaneFarPos_Y0_g;
32329
32330 /* SystemInitialize for Outport: '<S630>/PX2_EgoLaneNearPosValid' */
32331 L4_MABX_B.SFunction1_o4_f2 = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_f;
32332
32333 /* SystemInitialize for Outport: '<S630>/PX2_EgoLaneMidPosValid' */
32334 L4_MABX_B.SFunction1_o5_i = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_n;
32335
32336 /* SystemInitialize for Outport: '<S630>/PX2_EgoLaneFarPosValid' */
32337 L4_MABX_B.SFunction1_o6_cp = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_j;
32338
32339 /* SystemInitialize for Outport: '<S630>/RX status' */
32340 L4_MABX_B.SFunction1_o7_n = L4_MABX_P.RXstatus_Y0_drg;
32341
32342 /* SystemInitialize for Outport: '<S630>/RX time' */
32343 L4_MABX_B.SFunction1_o8_j = L4_MABX_P.RXtime_Y0_l;
32344
32345 /* SystemInitialize for Outport: '<S630>/RX delta time' */
32346 L4_MABX_B.SFunction1_o9_fb = L4_MABX_P.RXdeltatime_Y0_ig;
32347
32348 /* End of SystemInitialize for SubSystem: '<S629>/PX2_MapLaneEgoRight' */
32349
32350 /* SystemInitialize for Enabled SubSystem: '<S631>/PX2_EgoLanePos' */
32351 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneNearPosErr' */
32352 L4_MABX_B.SFunction1_o1_nn = L4_MABX_P.PX2_EgoLaneNearPosErr_Y0;
32353
32354 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneMidPosErr' */
32355 L4_MABX_B.SFunction1_o2_pb = L4_MABX_P.PX2_EgoLaneMidPosErr_Y0;
32356
32357 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneFarPosErr' */
32358 L4_MABX_B.SFunction1_o3_ef = L4_MABX_P.PX2_EgoLaneFarPosErr_Y0;
32359
32360 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneNearPosValid' */
32361 L4_MABX_B.SFunction1_o4_cw = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_g;
32362
32363 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneMidPosValid' */
32364 L4_MABX_B.SFunction1_o5_n = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_b;
32365
32366 /* SystemInitialize for Outport: '<S632>/PX2_EgoLaneFarPosValid' */
32367 L4_MABX_B.SFunction1_o6_p = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_jr;
32368
32369 /* SystemInitialize for Outport: '<S632>/RX status' */
32370 L4_MABX_B.SFunction1_o7_c = L4_MABX_P.RXstatus_Y0_f3;
32371
32372 /* SystemInitialize for Outport: '<S632>/RX time' */
32373 L4_MABX_B.SFunction1_o8_i = L4_MABX_P.RXtime_Y0_l0;
32374
32375 /* SystemInitialize for Outport: '<S632>/RX delta time' */
32376 L4_MABX_B.SFunction1_o9_m = L4_MABX_P.RXdeltatime_Y0_gz;
32377
32378 /* End of SystemInitialize for SubSystem: '<S631>/PX2_EgoLanePos' */
32379
32380 /* SystemInitialize for Enabled SubSystem: '<S641>/VEP1' */
32381 /* SystemInitialize for Outport: '<S642>/NetBatteryCurrent' */
32382 L4_MABX_B.SFunction1_o1_a = L4_MABX_P.NetBatteryCurrent_Y0;
32383
32384 /* SystemInitialize for Outport: '<S642>/AltCurrent' */
32385 L4_MABX_B.SFunction1_o2_ho = L4_MABX_P.AltCurrent_Y0;
32386
32387 /* SystemInitialize for Outport: '<S642>/ChargingSystemPotential' */
32388 L4_MABX_B.SFunction1_o3_o0 = L4_MABX_P.ChargingSystemPotential_Y0;
32389
32390 /* SystemInitialize for Outport: '<S642>/BatteryPotential_PowerInput1' */
32391 L4_MABX_B.SFunction1_o4_pj = L4_MABX_P.BatteryPotential_PowerInput1_Y0;
32392
32393 /* SystemInitialize for Outport: '<S642>/KeyswitchBatteryPotential' */
32394 L4_MABX_B.SFunction1_o5 = L4_MABX_P.KeyswitchBatteryPotential_Y0;
32395
32396 /* SystemInitialize for Outport: '<S642>/RX status' */
32397 L4_MABX_B.SFunction1_o6 = L4_MABX_P.RXstatus_Y0_ax;
32398
32399 /* SystemInitialize for Outport: '<S642>/RX time' */
32400 L4_MABX_B.SFunction1_o7 = L4_MABX_P.RXtime_Y0_k;
32401
32402 /* SystemInitialize for Outport: '<S642>/RX delta time' */
32403 L4_MABX_B.SFunction1_o8 = L4_MABX_P.RXdeltatime_Y0_g2;
32404
32405 /* End of SystemInitialize for SubSystem: '<S641>/VEP1' */
32406
32407 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_CTS' */
32408 /* SystemInitialize for Outport: '<S683>/Out' */
32409 L4_MABX_B.SPN2556_ControlByte_c = (uint8_T)L4_MABX_P.Out_Y0_m;
32410 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = (uint8_T)L4_MABX_P.Out_Y0_m;
32411 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = (uint8_T)L4_MABX_P.Out_Y0_m;
32412 L4_MABX_B.DataType_g5 = (uint32_T)L4_MABX_P.Out_Y0_m;
32413
32414 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_CTS' */
32415
32416 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' */
32417 /* SystemInitialize for Outport: '<S684>/Out' */
32418 L4_MABX_B.SPN2556_ControlByte_b = (uint8_T)L4_MABX_P.Out_Y0_i;
32419 L4_MABX_B.SPN2570_ConnectionAbortReason = (uint8_T)L4_MABX_P.Out_Y0_i;
32420 L4_MABX_B.DataType_fi = (uint32_T)L4_MABX_P.Out_Y0_i;
32421
32422 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_ConnectionAbort' */
32423
32424 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' */
32425 /* SystemInitialize for Outport: '<S685>/Out' */
32426 L4_MABX_B.SPN2556_ControlByte_i = (uint8_T)L4_MABX_P.Out_Y0_iv;
32427 L4_MABX_B.DataType_jri = (uint16_T)L4_MABX_P.Out_Y0_iv;
32428 L4_MABX_B.SPN2565_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_iv;
32429 L4_MABX_B.DataType_jy = (uint32_T)L4_MABX_P.Out_Y0_iv;
32430
32431 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_EndOfMessageAck' */
32432
32433 /* SystemInitialize for Enabled SubSystem: '<S464>/Decode_TPCM_RTS' */
32434 /* SystemInitialize for Outport: '<S686>/Out' */
32435 L4_MABX_B.SPN2556_ControlByte = (uint8_T)L4_MABX_P.Out_Y0_iv5;
32436 L4_MABX_B.DataType_jr = (uint16_T)L4_MABX_P.Out_Y0_iv5;
32437 L4_MABX_B.SPN2558_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_iv5;
32438 L4_MABX_B.SPN2559_MaximumNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_iv5;
32439 L4_MABX_B.DataType_ft = (uint32_T)L4_MABX_P.Out_Y0_iv5;
32440
32441 /* End of SystemInitialize for SubSystem: '<S464>/Decode_TPCM_RTS' */
32442
32443 /* SystemInitialize for Enabled SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' */
32444 /* SystemInitialize for Outport: '<S581>/byte1' */
32445 L4_MABX_B.SFunction1_o1_b3 = L4_MABX_P.byte1_Y0_l;
32446
32447 /* SystemInitialize for Outport: '<S581>/byte2' */
32448 L4_MABX_B.SFunction1_o2_br = L4_MABX_P.byte2_Y0_c;
32449
32450 /* SystemInitialize for Outport: '<S581>/byte3' */
32451 L4_MABX_B.SFunction1_o3_ci = L4_MABX_P.byte3_Y0_o;
32452
32453 /* SystemInitialize for Outport: '<S581>/byte4' */
32454 L4_MABX_B.SFunction1_o4_b4 = L4_MABX_P.byte4_Y0_a;
32455
32456 /* SystemInitialize for Outport: '<S581>/byte5' */
32457 L4_MABX_B.SFunction1_o5_ce = L4_MABX_P.byte5_Y0_n;
32458
32459 /* SystemInitialize for Outport: '<S581>/byte6' */
32460 L4_MABX_B.SFunction1_o6_hq = L4_MABX_P.byte6_Y0_a;
32461
32462 /* SystemInitialize for Outport: '<S581>/byte7' */
32463 L4_MABX_B.SFunction1_o7_p = L4_MABX_P.byte7_Y0_i;
32464
32465 /* SystemInitialize for Outport: '<S581>/byte8' */
32466 L4_MABX_B.SFunction1_o8_o = L4_MABX_P.byte8_Y0_j;
32467
32468 /* SystemInitialize for Outport: '<S581>/RX status' */
32469 L4_MABX_B.SFunction1_o9_mi = L4_MABX_P.RXstatus_Y0_a2;
32470
32471 /* SystemInitialize for Outport: '<S581>/RX time' */
32472 L4_MABX_B.SFunction1_o10_fd = L4_MABX_P.RXtime_Y0_fg;
32473
32474 /* SystemInitialize for Outport: '<S581>/RX delta time' */
32475 L4_MABX_B.SFunction1_o11_p4 = L4_MABX_P.RXdeltatime_Y0_mu;
32476
32477 /* End of SystemInitialize for SubSystem: '<S577>/CAN_TYPE1_RX_M1_C1' */
32478
32479 /* SystemInitialize for Enabled SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' */
32480 /* SystemInitialize for Outport: '<S582>/byte1' */
32481 L4_MABX_B.SFunction1_o1_ki = L4_MABX_P.byte1_Y0_lr;
32482
32483 /* SystemInitialize for Outport: '<S582>/byte2' */
32484 L4_MABX_B.SFunction1_o2_m5 = L4_MABX_P.byte2_Y0_i;
32485
32486 /* SystemInitialize for Outport: '<S582>/byte3' */
32487 L4_MABX_B.SFunction1_o3_ae = L4_MABX_P.byte3_Y0_a;
32488
32489 /* SystemInitialize for Outport: '<S582>/byte4' */
32490 L4_MABX_B.SFunction1_o4_pg3 = L4_MABX_P.byte4_Y0_o;
32491
32492 /* SystemInitialize for Outport: '<S582>/byte5' */
32493 L4_MABX_B.SFunction1_o5_j = L4_MABX_P.byte5_Y0_i;
32494
32495 /* SystemInitialize for Outport: '<S582>/byte6' */
32496 L4_MABX_B.SFunction1_o6_ka = L4_MABX_P.byte6_Y0_f;
32497
32498 /* SystemInitialize for Outport: '<S582>/byte7' */
32499 L4_MABX_B.SFunction1_o7_hq = L4_MABX_P.byte7_Y0_d;
32500
32501 /* SystemInitialize for Outport: '<S582>/byte8' */
32502 L4_MABX_B.SFunction1_o8_b5 = L4_MABX_P.byte8_Y0_g;
32503
32504 /* SystemInitialize for Outport: '<S582>/RX status' */
32505 L4_MABX_B.SFunction1_o9_e = L4_MABX_P.RXstatus_Y0_ca;
32506
32507 /* SystemInitialize for Outport: '<S582>/RX time' */
32508 L4_MABX_B.SFunction1_o10_ni = L4_MABX_P.RXtime_Y0_eb;
32509
32510 /* SystemInitialize for Outport: '<S582>/RX delta time' */
32511 L4_MABX_B.SFunction1_o11_pw = L4_MABX_P.RXdeltatime_Y0_kg;
32512
32513 /* End of SystemInitialize for SubSystem: '<S578>/CAN_TYPE1_RX_M1_C2' */
32514
32515 /* SystemInitialize for Enabled SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' */
32516 /* SystemInitialize for Outport: '<S583>/byte1' */
32517 L4_MABX_B.SFunction1_o1_pk = L4_MABX_P.byte1_Y0_cm;
32518
32519 /* SystemInitialize for Outport: '<S583>/byte2' */
32520 L4_MABX_B.SFunction1_o2_eq = L4_MABX_P.byte2_Y0_k;
32521
32522 /* SystemInitialize for Outport: '<S583>/byte3' */
32523 L4_MABX_B.SFunction1_o3_hf = L4_MABX_P.byte3_Y0_p;
32524
32525 /* SystemInitialize for Outport: '<S583>/byte4' */
32526 L4_MABX_B.SFunction1_o4_er = L4_MABX_P.byte4_Y0_nm;
32527
32528 /* SystemInitialize for Outport: '<S583>/byte5' */
32529 L4_MABX_B.SFunction1_o5_l3 = L4_MABX_P.byte5_Y0_e;
32530
32531 /* SystemInitialize for Outport: '<S583>/byte6' */
32532 L4_MABX_B.SFunction1_o6_i = L4_MABX_P.byte6_Y0_j;
32533
32534 /* SystemInitialize for Outport: '<S583>/byte7' */
32535 L4_MABX_B.SFunction1_o7_ih = L4_MABX_P.byte7_Y0_ic;
32536
32537 /* SystemInitialize for Outport: '<S583>/byte8' */
32538 L4_MABX_B.SFunction1_o8_e = L4_MABX_P.byte8_Y0_a;
32539
32540 /* SystemInitialize for Outport: '<S583>/RX status' */
32541 L4_MABX_B.SFunction1_o9_kc = L4_MABX_P.RXstatus_Y0_me;
32542
32543 /* SystemInitialize for Outport: '<S583>/RX time' */
32544 L4_MABX_B.SFunction1_o10_l = L4_MABX_P.RXtime_Y0_fa;
32545
32546 /* SystemInitialize for Outport: '<S583>/RX delta time' */
32547 L4_MABX_B.SFunction1_o11_p = L4_MABX_P.RXdeltatime_Y0_c;
32548
32549 /* End of SystemInitialize for SubSystem: '<S579>/CAN_TYPE1_RX_M3_C2' */
32550
32551 /* SystemInitialize for Enabled SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
32552 /* SystemInitialize for Outport: '<S594>/byte1' */
32553 L4_MABX_B.SFunction1_o1_mpc = L4_MABX_P.byte1_Y0_a;
32554
32555 /* SystemInitialize for Outport: '<S594>/byte2' */
32556 L4_MABX_B.SFunction1_o2_m1 = L4_MABX_P.byte2_Y0_a;
32557
32558 /* SystemInitialize for Outport: '<S594>/byte3' */
32559 L4_MABX_B.SFunction1_o3_hi = L4_MABX_P.byte3_Y0_d;
32560
32561 /* SystemInitialize for Outport: '<S594>/byte4' */
32562 L4_MABX_B.SFunction1_o4_fl = L4_MABX_P.byte4_Y0_k;
32563
32564 /* SystemInitialize for Outport: '<S594>/byte5' */
32565 L4_MABX_B.SFunction1_o5_p = L4_MABX_P.byte5_Y0_ij;
32566
32567 /* SystemInitialize for Outport: '<S594>/byte6' */
32568 L4_MABX_B.SFunction1_o6_b3 = L4_MABX_P.byte6_Y0_k;
32569
32570 /* SystemInitialize for Outport: '<S594>/byte7' */
32571 L4_MABX_B.SFunction1_o7_oa = L4_MABX_P.byte7_Y0_ky;
32572
32573 /* SystemInitialize for Outport: '<S594>/byte8' */
32574 L4_MABX_B.SFunction1_o8_iy = L4_MABX_P.byte8_Y0_ay;
32575
32576 /* SystemInitialize for Outport: '<S594>/RX status' */
32577 L4_MABX_B.SFunction1_o9_p = L4_MABX_P.RXstatus_Y0_ov;
32578
32579 /* SystemInitialize for Outport: '<S594>/RX time' */
32580 L4_MABX_B.SFunction1_o10_m = L4_MABX_P.RXtime_Y0_b;
32581
32582 /* SystemInitialize for Outport: '<S594>/RX delta time' */
32583 L4_MABX_B.SFunction1_o11_d = L4_MABX_P.RXdeltatime_Y0_bb;
32584
32585 /* End of SystemInitialize for SubSystem: '<S590>/CAN_TYPE1_RX_M1_C1' */
32586
32587 /* SystemInitialize for Enabled SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
32588 /* SystemInitialize for Outport: '<S595>/byte1' */
32589 L4_MABX_B.SFunction1_o1_ot = L4_MABX_P.byte1_Y0_cmf;
32590
32591 /* SystemInitialize for Outport: '<S595>/byte2' */
32592 L4_MABX_B.SFunction1_o2_go = L4_MABX_P.byte2_Y0_p;
32593
32594 /* SystemInitialize for Outport: '<S595>/byte3' */
32595 L4_MABX_B.SFunction1_o3_ly = L4_MABX_P.byte3_Y0_a4;
32596
32597 /* SystemInitialize for Outport: '<S595>/byte4' */
32598 L4_MABX_B.SFunction1_o4_cg = L4_MABX_P.byte4_Y0_j;
32599
32600 /* SystemInitialize for Outport: '<S595>/byte5' */
32601 L4_MABX_B.SFunction1_o5_mi = L4_MABX_P.byte5_Y0_nu;
32602
32603 /* SystemInitialize for Outport: '<S595>/byte6' */
32604 L4_MABX_B.SFunction1_o6_h = L4_MABX_P.byte6_Y0_o;
32605
32606 /* SystemInitialize for Outport: '<S595>/byte7' */
32607 L4_MABX_B.SFunction1_o7_h = L4_MABX_P.byte7_Y0_l;
32608
32609 /* SystemInitialize for Outport: '<S595>/byte8' */
32610 L4_MABX_B.SFunction1_o8_n0 = L4_MABX_P.byte8_Y0_b;
32611
32612 /* SystemInitialize for Outport: '<S595>/RX status' */
32613 L4_MABX_B.SFunction1_o9_fr = L4_MABX_P.RXstatus_Y0_hb;
32614
32615 /* SystemInitialize for Outport: '<S595>/RX time' */
32616 L4_MABX_B.SFunction1_o10_a = L4_MABX_P.RXtime_Y0_p;
32617
32618 /* SystemInitialize for Outport: '<S595>/RX delta time' */
32619 L4_MABX_B.SFunction1_o11_n = L4_MABX_P.RXdeltatime_Y0_ll;
32620
32621 /* End of SystemInitialize for SubSystem: '<S591>/CAN_TYPE1_RX_M1_C2' */
32622
32623 /* SystemInitialize for Enabled SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' */
32624 /* SystemInitialize for Outport: '<S596>/byte1' */
32625 L4_MABX_B.SFunction1_o1_ix = L4_MABX_P.byte1_Y0_o;
32626
32627 /* SystemInitialize for Outport: '<S596>/byte2' */
32628 L4_MABX_B.SFunction1_o2_aa = L4_MABX_P.byte2_Y0_h4;
32629
32630 /* SystemInitialize for Outport: '<S596>/byte3' */
32631 L4_MABX_B.SFunction1_o3_hs = L4_MABX_P.byte3_Y0_b;
32632
32633 /* SystemInitialize for Outport: '<S596>/byte4' */
32634 L4_MABX_B.SFunction1_o4_ku = L4_MABX_P.byte4_Y0_e;
32635
32636 /* SystemInitialize for Outport: '<S596>/byte5' */
32637 L4_MABX_B.SFunction1_o5_m = L4_MABX_P.byte5_Y0_h;
32638
32639 /* SystemInitialize for Outport: '<S596>/byte6' */
32640 L4_MABX_B.SFunction1_o6_pk = L4_MABX_P.byte6_Y0_bl;
32641
32642 /* SystemInitialize for Outport: '<S596>/byte7' */
32643 L4_MABX_B.SFunction1_o7_f = L4_MABX_P.byte7_Y0_p;
32644
32645 /* SystemInitialize for Outport: '<S596>/byte8' */
32646 L4_MABX_B.SFunction1_o8_nf = L4_MABX_P.byte8_Y0_i;
32647
32648 /* SystemInitialize for Outport: '<S596>/RX status' */
32649 L4_MABX_B.SFunction1_o9_k1 = L4_MABX_P.RXstatus_Y0_ke;
32650
32651 /* SystemInitialize for Outport: '<S596>/RX time' */
32652 L4_MABX_B.SFunction1_o10_f5 = L4_MABX_P.RXtime_Y0_gy;
32653
32654 /* SystemInitialize for Outport: '<S596>/RX delta time' */
32655 L4_MABX_B.SFunction1_o11_m = L4_MABX_P.RXdeltatime_Y0_cf;
32656
32657 /* End of SystemInitialize for SubSystem: '<S592>/CAN_TYPE1_RX_M3_C2' */
32658
32659 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32660 /* InitializeConditions for UnitDelay: '<S30>/Unit_Delay' */
32661 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_P.Unit_Delay_InitialCondition_e3;
32662
32663 /* InitializeConditions for UnitDelay: '<S31>/Unit Delay' */
32664 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_P.UnitDelay_InitialCondition_n;
32665
32666 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32667
32668 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32669 /* InitializeConditions for UnitDelay: '<S54>/Unit_Delay' */
32670 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_P.Unit_Delay_InitialCondition_o;
32671
32672 /* InitializeConditions for UnitDelay: '<S55>/Unit Delay' */
32673 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_P.UnitDelay_InitialCondition_p;
32674
32675 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32676
32677 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32678 /* InitializeConditions for UnitDelay: '<S60>/Unit_Delay' */
32679 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_P.Unit_Delay_InitialCondition_le;
32680
32681 /* InitializeConditions for UnitDelay: '<S61>/Unit Delay' */
32682 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_P.UnitDelay_InitialCondition_i;
32683
32684 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32685
32686 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32687 /* InitializeConditions for UnitDelay: '<S42>/Unit_Delay' */
32688 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_P.Unit_Delay_InitialCondition_m;
32689
32690 /* InitializeConditions for UnitDelay: '<S43>/Unit Delay' */
32691 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_P.UnitDelay_InitialCondition_hk;
32692
32693 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32694
32695 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32696 /* InitializeConditions for UnitDelay: '<S48>/Unit_Delay' */
32697 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_P.Unit_Delay_InitialCondition_bo2;
32698
32699 /* InitializeConditions for UnitDelay: '<S49>/Unit Delay' */
32700 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_P.UnitDelay_InitialCondition_l;
32701
32702 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32703
32704 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32705 /* InitializeConditions for UnitDelay: '<S36>/Unit_Delay' */
32706 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_P.Unit_Delay_InitialCondition_in;
32707
32708 /* InitializeConditions for UnitDelay: '<S37>/Unit Delay' */
32709 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_P.UnitDelay_InitialCondition_m;
32710
32711 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32712 }
32713}
32714
32715/* Model terminate function */
32716void L4_MABX_terminate(void)
32717{
32718 /* Terminate for Atomic SubSystem: '<S824>/CAN_TX_1000ms' */
32719
32720 /* Terminate for Enabled SubSystem: '<S844>/AIR1' */
32721
32722 /* Terminate for S-Function (rti_commonblock): '<S845>/S-Function1' */
32723
32724 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
32725 {
32726 /* ... Set the message into sleep mode */
32727 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32728 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31])) ==
32729 DSMCOM_BUFFER_OVERFLOW) ;
32730 }
32731
32732 /* End of Terminate for SubSystem: '<S844>/AIR1' */
32733
32734 /* Terminate for Enabled SubSystem: '<S852>/AMB' */
32735
32736 /* Terminate for S-Function (rti_commonblock): '<S853>/S-Function1' */
32737
32738 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
32739 {
32740 /* ... Set the message into sleep mode */
32741 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32742 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500])) ==
32743 DSMCOM_BUFFER_OVERFLOW) ;
32744 }
32745
32746 /* End of Terminate for SubSystem: '<S852>/AMB' */
32747
32748 /* End of Terminate for SubSystem: '<S824>/CAN_TX_1000ms' */
32749
32750 /* Terminate for S-Function (dsa_tcpip_setup_sfcn): '<S393>/dsa_tcpip_setup' */
32751 /* Level2 S-Function Block: '<S393>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
32752 {
32753 SimStruct *rts = L4_MABX_M->childSfunctions[3];
32754 sfcnTerminate(rts);
32755 }
32756
32757 /* Terminate for S-Function (dsa_tcpip_udp_sfcn): '<S394>/TCPIP_Com' */
32758 /* Level2 S-Function Block: '<S394>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
32759 {
32760 SimStruct *rts = L4_MABX_M->childSfunctions[4];
32761 sfcnTerminate(rts);
32762 }
32763
32764 /* Terminate for Atomic SubSystem: '<S824>/CAN_TX_100ms' */
32765
32766 /* Terminate for Enabled SubSystem: '<S883>/PropB_XPR_FC' */
32767
32768 /* Terminate for S-Function (rti_commonblock): '<S885>/S-Function1' */
32769
32770 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32771 {
32772 /* ... Set the message into sleep mode */
32773 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32774 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC])) ==
32775 DSMCOM_BUFFER_OVERFLOW) ;
32776 }
32777
32778 /* End of Terminate for SubSystem: '<S883>/PropB_XPR_FC' */
32779
32780 /* Terminate for Enabled SubSystem: '<S884>/PropB_XPR_FC' */
32781
32782 /* Terminate for S-Function (rti_commonblock): '<S886>/S-Function1' */
32783
32784 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32785 {
32786 /* ... Set the message into sleep mode */
32787 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32788 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC])) ==
32789 DSMCOM_BUFFER_OVERFLOW) ;
32790 }
32791
32792 /* End of Terminate for SubSystem: '<S884>/PropB_XPR_FC' */
32793
32794 /* Terminate for Enabled SubSystem: '<S913>/Std_PosRapidUpdate_01' */
32795
32796 /* Terminate for S-Function (rti_commonblock): '<S914>/S-Function1' */
32797
32798 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
32799 {
32800 /* ... Set the message into sleep mode */
32801 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32802 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3])) ==
32803 DSMCOM_BUFFER_OVERFLOW) ;
32804 }
32805
32806 /* End of Terminate for SubSystem: '<S913>/Std_PosRapidUpdate_01' */
32807
32808 /* Terminate for Enabled SubSystem: '<S863>/CCVS1_00' */
32809
32810 /* Terminate for S-Function (rti_commonblock): '<S865>/S-Function1' */
32811
32812 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
32813 {
32814 /* ... Set the message into sleep mode */
32815 while ((rtican_type1_tq_error[0][3] = can_tp1_msg_sleep
32816 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100])) ==
32817 DSMCOM_BUFFER_OVERFLOW) ;
32818 }
32819
32820 /* End of Terminate for SubSystem: '<S863>/CCVS1_00' */
32821
32822 /* Terminate for Enabled SubSystem: '<S864>/CCVS1_00' */
32823
32824 /* Terminate for S-Function (rti_commonblock): '<S866>/S-Function1' */
32825
32826 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
32827 {
32828 /* ... Set the message into sleep mode */
32829 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32830 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100])) ==
32831 DSMCOM_BUFFER_OVERFLOW) ;
32832 }
32833
32834 /* End of Terminate for SubSystem: '<S864>/CCVS1_00' */
32835
32836 /* Terminate for Enabled SubSystem: '<S867>/PropB_REAX_5_E4' */
32837
32838 /* Terminate for S-Function (rti_commonblock): '<S869>/S-Function1' incorporates:
32839 * Constant: '<S867>/Constant'
32840 * Constant: '<S867>/Constant1'
32841 */
32842
32843 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32844 {
32845 /* ... Set the message into sleep mode */
32846 while ((rtican_type1_tq_error[0][5] = can_tp1_msg_sleep
32847 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4])) ==
32848 DSMCOM_BUFFER_OVERFLOW) ;
32849 }
32850
32851 /* End of Terminate for SubSystem: '<S867>/PropB_REAX_5_E4' */
32852
32853 /* Terminate for Enabled SubSystem: '<S868>/PropB_REAX_5_E4' */
32854
32855 /* Terminate for S-Function (rti_commonblock): '<S870>/S-Function1' incorporates:
32856 * Constant: '<S868>/Constant'
32857 * Constant: '<S868>/Constant1'
32858 */
32859
32860 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32861 {
32862 /* ... Set the message into sleep mode */
32863 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32864 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4])) ==
32865 DSMCOM_BUFFER_OVERFLOW) ;
32866 }
32867
32868 /* End of Terminate for SubSystem: '<S868>/PropB_REAX_5_E4' */
32869
32870 /* Terminate for Enabled SubSystem: '<S887>/Std_COGSOGRapidUpdate_01' */
32871
32872 /* Terminate for S-Function (rti_commonblock): '<S888>/S-Function1' incorporates:
32873 * Constant: '<S887>/Constant'
32874 * Constant: '<S887>/Constant1'
32875 */
32876
32877 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
32878 {
32879 /* ... Set the message into sleep mode */
32880 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32881 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7])) ==
32882 DSMCOM_BUFFER_OVERFLOW) ;
32883 }
32884
32885 /* End of Terminate for SubSystem: '<S887>/Std_COGSOGRapidUpdate_01' */
32886
32887 /* Terminate for Enabled SubSystem: '<S889>/EBC1_TX' */
32888
32889 /* Terminate for S-Function (rti_commonblock): '<S890>/S-Function1' */
32890
32891 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
32892 {
32893 /* ... Set the message into sleep mode */
32894 while ((rtican_type1_tq_error[0][2] = can_tp1_msg_sleep
32895 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B])) ==
32896 DSMCOM_BUFFER_OVERFLOW) ;
32897 }
32898
32899 /* End of Terminate for SubSystem: '<S889>/EBC1_TX' */
32900
32901 /* End of Terminate for SubSystem: '<S824>/CAN_TX_100ms' */
32902
32903 /* Terminate for Atomic SubSystem: '<S824>/CAN_TX_10ms' */
32904
32905 /* Terminate for Enabled SubSystem: '<S926>/ACCS' */
32906
32907 /* Terminate for S-Function (rti_commonblock): '<S927>/S-Function1' */
32908
32909 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
32910 {
32911 /* ... Set the message into sleep mode */
32912 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32913 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4])) ==
32914 DSMCOM_BUFFER_OVERFLOW) ;
32915 }
32916
32917 /* End of Terminate for SubSystem: '<S926>/ACCS' */
32918
32919 /* Terminate for Enabled SubSystem: '<S934>/EEC1_00' */
32920
32921 /* Terminate for S-Function (rti_commonblock): '<S936>/S-Function1' */
32922
32923 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32924 {
32925 /* ... Set the message into sleep mode */
32926 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
32927 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400])) ==
32928 DSMCOM_BUFFER_OVERFLOW) ;
32929 }
32930
32931 /* End of Terminate for SubSystem: '<S934>/EEC1_00' */
32932
32933 /* Terminate for Enabled SubSystem: '<S935>/EEC1_00' */
32934
32935 /* Terminate for S-Function (rti_commonblock): '<S937>/S-Function1' */
32936
32937 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32938 {
32939 /* ... Set the message into sleep mode */
32940 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32941 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400])) ==
32942 DSMCOM_BUFFER_OVERFLOW) ;
32943 }
32944
32945 /* End of Terminate for SubSystem: '<S935>/EEC1_00' */
32946
32947 /* Terminate for Enabled SubSystem: '<S938>/PropB_REAX_1_E4' */
32948
32949 /* Terminate for S-Function (rti_commonblock): '<S940>/S-Function1' incorporates:
32950 * Constant: '<S938>/Constant'
32951 * Constant: '<S938>/Constant1'
32952 */
32953
32954 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32955 {
32956 /* ... Set the message into sleep mode */
32957 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32958 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4])) ==
32959 DSMCOM_BUFFER_OVERFLOW) ;
32960 }
32961
32962 /* End of Terminate for SubSystem: '<S938>/PropB_REAX_1_E4' */
32963
32964 /* Terminate for Enabled SubSystem: '<S939>/PropB_REAX_1_E4' */
32965
32966 /* Terminate for S-Function (rti_commonblock): '<S941>/S-Function1' incorporates:
32967 * Constant: '<S939>/Constant'
32968 * Constant: '<S939>/Constant1'
32969 */
32970
32971 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32972 {
32973 /* ... Set the message into sleep mode */
32974 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32975 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4])) ==
32976 DSMCOM_BUFFER_OVERFLOW) ;
32977 }
32978
32979 /* End of Terminate for SubSystem: '<S939>/PropB_REAX_1_E4' */
32980
32981 /* Terminate for Enabled SubSystem: '<S948>/VDC2_0B' */
32982
32983 /* Terminate for S-Function (rti_commonblock): '<S949>/S-Function1' */
32984
32985 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
32986 {
32987 /* ... Set the message into sleep mode */
32988 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32989 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B])) ==
32990 DSMCOM_BUFFER_OVERFLOW) ;
32991 }
32992
32993 /* End of Terminate for SubSystem: '<S948>/VDC2_0B' */
32994
32995 /* End of Terminate for SubSystem: '<S824>/CAN_TX_10ms' */
32996
32997 /* Terminate for Atomic SubSystem: '<S824>/CAN_TX_20ms' */
32998
32999 /* Terminate for Enabled SubSystem: '<S993>/PropB_XBR_B3' */
33000
33001 /* Terminate for S-Function (rti_commonblock): '<S994>/S-Function1' */
33002
33003 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
33004 {
33005 /* ... Set the message into sleep mode */
33006 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
33007 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3])) ==
33008 DSMCOM_BUFFER_OVERFLOW) ;
33009 }
33010
33011 /* End of Terminate for SubSystem: '<S993>/PropB_XBR_B3' */
33012
33013 /* Terminate for Enabled SubSystem: '<S995>/PropB_Bendix_2C2_XPR' */
33014
33015 /* Terminate for S-Function (rti_commonblock): '<S996>/S-Function1' */
33016
33017 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
33018 {
33019 /* ... Set the message into sleep mode */
33020 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
33021 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665])) ==
33022 DSMCOM_BUFFER_OVERFLOW) ;
33023 }
33024
33025 /* End of Terminate for SubSystem: '<S995>/PropB_Bendix_2C2_XPR' */
33026
33027 /* Terminate for Enabled SubSystem: '<S1003>/Std_OdometryData' */
33028
33029 /* Terminate for S-Function (rti_commonblock): '<S1004>/S-Function1' */
33030
33031 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
33032 {
33033 /* ... Set the message into sleep mode */
33034 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33035 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA])) ==
33036 DSMCOM_BUFFER_OVERFLOW) ;
33037 }
33038
33039 /* End of Terminate for SubSystem: '<S1003>/Std_OdometryData' */
33040
33041 /* End of Terminate for SubSystem: '<S824>/CAN_TX_20ms' */
33042
33043 /* Terminate for Atomic SubSystem: '<S824>/CAN_TX_5000ms' */
33044
33045 /* Terminate for Enabled SubSystem: '<S1018>/RQST_13_E4' */
33046
33047 /* Terminate for S-Function (rti_commonblock): '<S1020>/S-Function1' */
33048
33049 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
33050 {
33051 /* ... Set the message into sleep mode */
33052 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
33053 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4])) ==
33054 DSMCOM_BUFFER_OVERFLOW) ;
33055 }
33056
33057 /* End of Terminate for SubSystem: '<S1018>/RQST_13_E4' */
33058
33059 /* End of Terminate for SubSystem: '<S824>/CAN_TX_5000ms' */
33060
33061 /* Terminate for Atomic SubSystem: '<S824>/CAN_TX_50ms' */
33062
33063 /* Terminate for Enabled SubSystem: '<S1029>/CCVS1_E3' */
33064
33065 /* Terminate for S-Function (rti_commonblock): '<S1031>/S-Function1' */
33066
33067 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
33068 {
33069 /* ... Set the message into sleep mode */
33070 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
33071 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3])) ==
33072 DSMCOM_BUFFER_OVERFLOW) ;
33073 }
33074
33075 /* End of Terminate for SubSystem: '<S1029>/CCVS1_E3' */
33076
33077 /* Terminate for Enabled SubSystem: '<S1030>/TC1_03_05' */
33078
33079 /* Terminate for S-Function (rti_commonblock): '<S1032>/S-Function1' */
33080
33081 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
33082 {
33083 /* ... Set the message into sleep mode */
33084 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33085 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305])) ==
33086 DSMCOM_BUFFER_OVERFLOW) ;
33087 }
33088
33089 /* End of Terminate for SubSystem: '<S1030>/TC1_03_05' */
33090
33091 /* End of Terminate for SubSystem: '<S824>/CAN_TX_50ms' */
33092
33093 /* Terminate for Enabled SubSystem: '<S1042>/Std_SystemTime_01' */
33094
33095 /* Terminate for S-Function (rti_commonblock): '<S1044>/S-Function1' incorporates:
33096 * Constant: '<S1042>/Constant'
33097 * Constant: '<S1042>/Constant1'
33098 */
33099
33100 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
33101 {
33102 /* ... Set the message into sleep mode */
33103 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33104 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5])) ==
33105 DSMCOM_BUFFER_OVERFLOW) ;
33106 }
33107
33108 /* End of Terminate for SubSystem: '<S1042>/Std_SystemTime_01' */
33109
33110 /* Terminate for Triggered SubSystem: '<S1037>/CAN_TYPE1_TX_M1_C1' */
33111
33112 /* Terminate for S-Function (rti_commonblock): '<S1039>/S-Function1' */
33113
33114 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
33115 {
33116 /* ... Set the message into sleep mode */
33117 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33118 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05])) ==
33119 DSMCOM_BUFFER_OVERFLOW) ;
33120 }
33121
33122 /* End of Terminate for SubSystem: '<S1037>/CAN_TYPE1_TX_M1_C1' */
33123
33124 /* Terminate for Triggered SubSystem: '<S1038>/CAN_TYPE1_TX_M1_C1' */
33125
33126 /* Terminate for S-Function (rti_commonblock): '<S1040>/S-Function1' */
33127
33128 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
33129 {
33130 /* ... Set the message into sleep mode */
33131 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33132 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05])) ==
33133 DSMCOM_BUFFER_OVERFLOW) ;
33134 }
33135
33136 /* End of Terminate for SubSystem: '<S1038>/CAN_TYPE1_TX_M1_C1' */
33137
33138 /* Terminate for S-Function (rti_commonblock): '<S1045>/S-Function1' */
33139
33140 /* disable digital output channel 4 on port 1 *
33141 * (set to high-impedance), when the simulation terminates */
33142 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4,
33143 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33144
33145 /* Terminate for S-Function (rti_commonblock): '<S1046>/S-Function1' */
33146
33147 /* disable digital output channel 2 on port 1 *
33148 * (set to high-impedance), when the simulation terminates */
33149 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2,
33150 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33151
33152 /* Terminate for S-Function (rti_commonblock): '<S1047>/S-Function1' */
33153
33154 /* disable digital output channel 1 on port 1 *
33155 * (set to high-impedance), when the simulation terminates */
33156 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1,
33157 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33158
33159 /* Terminate for S-Function (rti_commonblock): '<S1048>/S-Function1' */
33160
33161 /* disable digital output channel 3 on port 1 *
33162 * (set to high-impedance), when the simulation terminates */
33163 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3,
33164 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
33165
33166 /* Terminate for S-Function (rti_commonblock): '<S1049>/S-Function1' */
33167
33168 /* disable digital output channel 1 on port 2 *
33169 * (set to high-impedance), when the simulation terminates */
33170 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH1,
33171 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
33172 DIO_TP4_PWM);
33173
33174 /* Terminate for S-Function (rti_commonblock): '<S1050>/S-Function1' */
33175
33176 /* disable digital output channel 2 on port 2 *
33177 * (set to high-impedance), when the simulation terminates */
33178 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH2,
33179 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
33180 DIO_TP4_PWM);
33181
33182 /* Terminate for S-Function (rti_commonblock): '<S403>/S-Function1' incorporates:
33183 * SubSystem: '<S393>/Background_Task'
33184 */
33185 L4_MAB_Background_Task_Term();
33186
33187 /* End of Terminate for S-Function (rti_commonblock): '<S403>/S-Function1' */
33188
33189 /* Terminate for S-Function (rti_commonblock): '<S409>/S-Function1' incorporates:
33190 * SubSystem: '<S393>/Interrupt_Task'
33191 */
33192 L4_MABX_Interrupt_Task_Term();
33193
33194 /* End of Terminate for S-Function (rti_commonblock): '<S409>/S-Function1' */
33195
33196 /* Terminate for S-Function (rti_commonblock): '<S455>/S-Function1' */
33197
33198 /* dSPACE RTICAN STD Srvc-Message Block */
33199 {
33200 /* ... Set the message into sleep mode */
33201 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33202 (CANTP1_RX_SPMSG_M1_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33203 }
33204
33205 /* dSPACE RTICAN XTD Srvc-Message Block */
33206 {
33207 /* ... Set the message into sleep mode */
33208 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33209 (CANTP1_RX_SPMSG_M1_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33210 }
33211
33212 /* Terminate for S-Function (rti_commonblock): '<S456>/S-Function1' */
33213
33214 /* dSPACE RTICAN STD Srvc-Message Block */
33215 {
33216 /* ... Set the message into sleep mode */
33217 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33218 (CANTP1_RX_SPMSG_M1_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33219 }
33220
33221 /* dSPACE RTICAN XTD Srvc-Message Block */
33222 {
33223 /* ... Set the message into sleep mode */
33224 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33225 (CANTP1_RX_SPMSG_M1_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33226 }
33227
33228 /* Terminate for S-Function (rti_commonblock): '<S457>/S-Function1' */
33229
33230 /* dSPACE RTICAN STD Srvc-Message Block */
33231 {
33232 /* ... Set the message into sleep mode */
33233 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33234 (CANTP1_RX_SPMSG_M2_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33235 }
33236
33237 /* dSPACE RTICAN XTD Srvc-Message Block */
33238 {
33239 /* ... Set the message into sleep mode */
33240 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33241 (CANTP1_RX_SPMSG_M2_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33242 }
33243
33244 /* Terminate for S-Function (rti_commonblock): '<S458>/S-Function1' */
33245
33246 /* dSPACE RTICAN STD Srvc-Message Block */
33247 {
33248 /* ... Set the message into sleep mode */
33249 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33250 (CANTP1_RX_SPMSG_M2_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33251 }
33252
33253 /* dSPACE RTICAN XTD Srvc-Message Block */
33254 {
33255 /* ... Set the message into sleep mode */
33256 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33257 (CANTP1_RX_SPMSG_M2_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33258 }
33259
33260 /* Terminate for S-Function (rti_commonblock): '<S459>/S-Function1' */
33261
33262 /* dSPACE RTICAN STD Srvc-Message Block */
33263 {
33264 /* ... Set the message into sleep mode */
33265 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33266 (CANTP1_RX_SPMSG_M3_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33267 }
33268
33269 /* dSPACE RTICAN XTD Srvc-Message Block */
33270 {
33271 /* ... Set the message into sleep mode */
33272 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33273 (CANTP1_RX_SPMSG_M3_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33274 }
33275
33276 /* Terminate for S-Function (rti_commonblock): '<S460>/S-Function1' */
33277
33278 /* dSPACE RTICAN STD Srvc-Message Block */
33279 {
33280 /* ... Set the message into sleep mode */
33281 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33282 (CANTP1_RX_SPMSG_M3_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33283 }
33284
33285 /* dSPACE RTICAN XTD Srvc-Message Block */
33286 {
33287 /* ... Set the message into sleep mode */
33288 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33289 (CANTP1_RX_SPMSG_M3_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33290 }
33291}
33292